From 97a1479fef292325390fa0b0529f5ef64ecae7e1 Mon Sep 17 00:00:00 2001 From: Gianluca Guarini Date: Tue, 14 May 2019 22:14:59 +0200 Subject: [PATCH] fixes #8 and hot reload --- Readme.md | 2 +- RiotAsset.js | 5 +++-- package-lock.json | 2 +- package.json | 3 +-- test/main.js | 2 -- test/package.json | 2 ++ test/riot.config.js | 3 +++ 7 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 test/riot.config.js diff --git a/Readme.md b/Readme.md index f2b3b0d..4eb927d 100644 --- a/Readme.md +++ b/Readme.md @@ -32,7 +32,7 @@ component(App)(document.querySelector('#root'), { If you want compile your tags using custom riot compiler options you can create a `riot.config.js` in the root folder of your project ```js -export default { +module.exports = { hot: false // set it to true if you are using hmr // add here all the other @riotjs/compiler options riot.js.org/compiler // template: 'pug' for example diff --git a/RiotAsset.js b/RiotAsset.js index 88c20e6..7c0060b 100644 --- a/RiotAsset.js +++ b/RiotAsset.js @@ -1,5 +1,6 @@ const { compile } = require('@riotjs/compiler') const { Asset } = require('parcel-bundler') +const { relative, dirname } = require('path') /** * Generate the hmr code depending on the tag generated by the compiler @@ -12,7 +13,7 @@ function hotReload(path) { const hotReload = require('@riotjs/hot-reload').default module.hot.accept() if (module.hot.data) { - const component = require('${path}').default; + const component = require('./${path}').default; hotReload(component) } } @@ -36,7 +37,7 @@ class RiotAsset extends Asset { { sourceMap: this.options.sourceMaps ? map : false, type: 'js', - value: `${code}${options.hot ? hotReload(this.relativeName) : ''}` + value: `${code}${options.hot ? hotReload(relative(dirname(this.name), this.relativeName)) : ''}` } ] } diff --git a/package-lock.json b/package-lock.json index 85da207..cec862f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@riotjs/parcel-plugin-riot", - "version": "4.0.0-alpha.1", + "version": "4.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d5d28b4..ef9a84b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,6 @@ "description": "A parcel plugin for riot.js", "main": "index.js", "scripts": { - "prepare": "npm i --no-save @riotjs/compiler parcel-bundler", "test": "npx eslint *.js && npm run test-bundle", "test-bundle": "cd test && npm i" }, @@ -15,7 +14,7 @@ }, "peerDependencies": { "parcel-bundler": "^1.12.3", - "@riotjs/compiler": "^4.0.0" + "@riotjs/compiler": "^4.1.1" }, "devDependencies": { "eslint": "^5.16.0", diff --git a/test/main.js b/test/main.js index 40b2946..a683fd4 100644 --- a/test/main.js +++ b/test/main.js @@ -1,5 +1,3 @@ import MyComponent from './my-component.riot' -console.log(MyComponent) - export default MyComponent \ No newline at end of file diff --git a/test/package.json b/test/package.json index 555132f..2b399db 100644 --- a/test/package.json +++ b/test/package.json @@ -10,6 +10,8 @@ }, "devDependencies": { "@riotjs/compiler": "^4.0.0", + "@riotjs/hot-reload": "^4.0.0-rc.1", + "riot": "^4.0.0-rc.13", "@riotjs/parcel-plugin-riot": "file:../" } } diff --git a/test/riot.config.js b/test/riot.config.js new file mode 100644 index 0000000..dd629fa --- /dev/null +++ b/test/riot.config.js @@ -0,0 +1,3 @@ +module.exports = { + hot: true +} \ No newline at end of file