我正在使用webpack捆绑我的快速服务器,并希望利用webpack观察器。当bundle更改时,我正在使用nodemon重启我的服务器。
我可以在一个终端中使用观察者手动运行webpack并在一秒钟内启动nodemon,但我最终希望能够仅使用" npm start"干净地启动这两个进程。脚本。
离。 Webpack Bundles - > Nodemon开始 - > Webpack Watchers Start
有没有人对这个话题有任何想法?
答案 0 :(得分:1)
我最终使用Webpack / Nodemon Node API创建了一个自定义构建脚本,而不是CLI。这个选项为我提供了更灵活的自定义终端输出。
import webpack from 'webpack';
import nodemon from 'nodemon';
import webpackConfig from './webpack.config.babel';
const compiler = webpack(webpackConfig);
compiler.run((runErrors, runStats) => {
console.log(runStats.toString({
cached: false,
colors: true,
assets: true,
chunks: false,
chunkModules: false,
chunkOrigins: false,
errors: true,
errorDetails: true,
hash: false,
modules: false,
timings: false,
warnings: false,
version: false,
}));
console.log();
nodemon({
script: 'build/server.bundle.js',
watch: 'build/server.bundle.js'
}).on('restart', () => {
process.env.NODEMON_STATUS = 'restarted';
});
compiler.watch({}, (watchErrors, watchStats) => {
const hasErrors = watchErrors || watchStats.hasErrors();
if (hasErrors) {
console.log((watchStats.toString({
cached: false,
colors: true,
assets: false,
chunks: false,
chunkModules: false,
chunkOrigins: false,
errors: true,
errorDetails: true,
hash: false,
modules: false,
timings: false,
warnings: false,
version: false,
children: false,
reasons: false,
source: false,
})));
}
});
});
process.on('SIGINT', () => {
process.exit(0);
});
process.on('SIGTERM', () => {
process.exit(0);
});
process.on('SIGUSR2', () => {
process.exit(0);
});
process.on('exit', () => {
process.exit(0);
});
答案 1 :(得分:0)
如果nodemon在文件更改时自动重启服务器,则可以使用名为concurrently的包。
首先作为dev依赖项同时安装。
npm i concurrently --save-dev
之后编辑你的package.json
"start": "**webpack build** && concurrently --kill-others \"nodemon app.js\" \"**webpack watch**\""
ps:我添加了**占位符,您应该使用构建和监视的命令更改它们之间的命令。