diff --git a/package.json b/package.json index b2d7f101de59eaa0186bd0892e9354991d3f252e..c6255f62eb1078e9aebf15463ff24ef7a7c3b6dc 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 0000000000000000000000000000000000000000..3704ae5c79cac9544774c457298ce9634d8bd23f --- /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