From 4247f6fb278191756d849208e17e84a36e882afe Mon Sep 17 00:00:00 2001 From: daijun Date: Tue, 11 Aug 2020 22:47:16 +0800 Subject: [PATCH 1/2] ADD watch and serve script to package.json to hot reload static files that not managed by rollup --- package.json | 4 ++++ scripts/watch.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 scripts/watch.js diff --git a/package.json b/package.json index b2d7f101..c6255f62 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ "build-desktop": "node scripts/build_desktop.js", "start-desktop": "cd build && electron .", "dev": "cd web && rollup -c rollup.config.js --watch", + "watch": "node scripts/watch.js", + "serve": "npm-run-all --parallel dev watch", "copy": "node scripts/copy.js", "start": "node scripts/start.js", "set-proxy": "node scripts/set_proxy.js", @@ -33,6 +35,7 @@ "@babel/core": "^7.9.6", "@babel/preset-react": "^7.9.4", "babel-eslint": "^10.1.0", + "chokidar": "^3.4.2", "electron": "^9.0.5", "electron-packager": "^14.2.1", "eslint": "^6.8.0", @@ -40,6 +43,7 @@ "eslint-plugin-react": "^7.19.0", "fs-extra": "^9.0.1", "iconv-lite": "^0.6.0", + "npm-run-all": "^4.1.5", "rollup": "^1.32.1", "rollup-plugin-babel": "^4.4.0", "rollup-plugin-bundle-worker": "^0.1.0", diff --git a/scripts/watch.js b/scripts/watch.js new file mode 100644 index 00000000..3414b102 --- /dev/null +++ b/scripts/watch.js @@ -0,0 +1,43 @@ +const chokidar = require('chokidar'); +const path = require('path'); +const fs = require('fs-extra'); + +const rootDir = process.cwd(); // The root dir that contains `README.md`. +const webDir = path.join(rootDir, 'web'); // The web dir. + +process.chdir(webDir); + +chokidar.watch('./index.html').on('change',function(){ + fs.copyFileSync('./index.html', '../build/public/index.html'); + console.log('Copy index.html to ../build/public/index.html') +}) + +chokidar.watch('./assets').on('change',function(){ + fs.copySync('./assets', '../build/public/assets'); + console.log('Copy ./assets to ../build/public/assets') +}) + +chokidar.watch('./locales').on('change',function(){ + fs.copySync('./locales', '../build/public/locales'); + console.log('Copy ./locales to ../build/public/locales') +}) + +chokidar.watch('./favicon.ico').on('change',function(){ + fs.copyFileSync('./favicon.ico', '../build/public/favicon.ico'); + console.log('Copy ./favicon.ico to ../build/public/favicon.ico') +}) + +chokidar.watch('./manifest.json').on('change',function(){ + fs.copyFileSync('./manifest.json', '../build/public/manifest.json'); + console.log('Copy ./manifest.json ../build/public/manifest.json') +}) + +chokidar.watch('./sw.js').on('change',function(){ + fs.copyFileSync('./sw.js', '../build/public/sw.js'); + console.log('Copy ./sw.js to ../build/public/sw.js') +}) + +chokidar.watch('./view.html').on('change',function(){ + fs.copyFileSync('./view.html', '../build/public/view.html'); + console.log('Copy ./view.html to ../build/public/view.html') +}) \ No newline at end of file -- Gitee From 5d4b6322cee4c7466c8526cac1bb946ddd39c478 Mon Sep 17 00:00:00 2001 From: daijun Date: Wed, 12 Aug 2020 09:05:54 +0800 Subject: [PATCH 2/2] fix eslint error --- scripts/watch.js | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/scripts/watch.js b/scripts/watch.js index 3414b102..3704ae5c 100644 --- a/scripts/watch.js +++ b/scripts/watch.js @@ -7,37 +7,37 @@ const webDir = path.join(rootDir, 'web'); // The web dir. process.chdir(webDir); -chokidar.watch('./index.html').on('change',function(){ +chokidar.watch('./index.html').on('change',function (){ fs.copyFileSync('./index.html', '../build/public/index.html'); - console.log('Copy index.html to ../build/public/index.html') -}) + console.log('Copy index.html to ../build/public/index.html'); +}); -chokidar.watch('./assets').on('change',function(){ +chokidar.watch('./assets').on('change',function (){ fs.copySync('./assets', '../build/public/assets'); - console.log('Copy ./assets to ../build/public/assets') -}) + console.log('Copy ./assets to ../build/public/assets'); +}); -chokidar.watch('./locales').on('change',function(){ +chokidar.watch('./locales').on('change',function (){ fs.copySync('./locales', '../build/public/locales'); - console.log('Copy ./locales to ../build/public/locales') -}) + console.log('Copy ./locales to ../build/public/locales'); +}); -chokidar.watch('./favicon.ico').on('change',function(){ +chokidar.watch('./favicon.ico').on('change',function (){ fs.copyFileSync('./favicon.ico', '../build/public/favicon.ico'); - console.log('Copy ./favicon.ico to ../build/public/favicon.ico') -}) + console.log('Copy ./favicon.ico to ../build/public/favicon.ico'); +}); -chokidar.watch('./manifest.json').on('change',function(){ +chokidar.watch('./manifest.json').on('change',function (){ fs.copyFileSync('./manifest.json', '../build/public/manifest.json'); - console.log('Copy ./manifest.json ../build/public/manifest.json') -}) + console.log('Copy ./manifest.json ../build/public/manifest.json'); +}); -chokidar.watch('./sw.js').on('change',function(){ +chokidar.watch('./sw.js').on('change',function (){ fs.copyFileSync('./sw.js', '../build/public/sw.js'); - console.log('Copy ./sw.js to ../build/public/sw.js') -}) + console.log('Copy ./sw.js to ../build/public/sw.js'); +}); -chokidar.watch('./view.html').on('change',function(){ +chokidar.watch('./view.html').on('change',function (){ fs.copyFileSync('./view.html', '../build/public/view.html'); - console.log('Copy ./view.html to ../build/public/view.html') -}) \ No newline at end of file + console.log('Copy ./view.html to ../build/public/view.html'); +}); \ No newline at end of file -- Gitee