我正在开发一个 Express 应用程序。代码使用 ES6 import 语句,所以需要通过 Babel 在 ES5 代码中进行转译,以便在 Node.js 中运行。ES6源代码存放在我的src
目录下,编译后的代码存放在我的dest
目录下。
我想要一个我可以运行的 npm 命令,它将监视我的src
目录中的任何更改,将项目转换为dest
,然后重新启动 Express 应用程序。
以下是我到目前为止的解决方案(我运行npm run server:watch
)。每当我的目录中的任何 js 文件发生更改时,它都会用于chokidar-cli
执行server:build
和脚本。除了再次编译代码时 Express 应用程序不会死机之外,这非常有效,因此当我再次尝试运行时出现“正在使用的端口”异常。server:run
src
server:watch
// package.json
"scripts": {
"server:clean": "rm -f dist/*",
"server:build": "npm run server:clean && ./node_modules/.bin/babel ./src --experimental --source-maps-inline -d ./dist",
"server:run": "nodemon dist/app.js --watch",
"server:watch": "chokidar 'src/*.js' -c 'npm run server:build && npm run server:run'"
}
我在正确的轨道上吗?这类问题的最佳解决方案是什么?
(为了澄清,我说的是转译服务器端代码,所以 webpack 或任何其他模块捆绑器在这里都不合适)