Javascript 在启用监视的情况下运行Web包并启动服务器
我正在使用webpack捆绑我的express服务器,并希望使用webpack watcher。当捆绑包发生更改时,我正在使用nodemon重新启动服务器 我可以在一个终端上用watcher手动运行webpack,并在一秒钟内启动nodemon,但我最终希望能够使用“npm start”脚本干净地启动这两个进程 例如:Webpack Bundles->Nodemon启动->Webpack监视程序启动Javascript 在启用监视的情况下运行Web包并启动服务器,javascript,node.js,express,webpack,Javascript,Node.js,Express,Webpack,我正在使用webpack捆绑我的express服务器,并希望使用webpack watcher。当捆绑包发生更改时,我正在使用nodemon重新启动服务器 我可以在一个终端上用watcher手动运行webpack,并在一秒钟内启动nodemon,但我最终希望能够使用“npm start”脚本干净地启动这两个进程 例如:Webpack Bundles->Nodemon启动->Webpack监视程序启动 有人对此有什么想法吗?如果nodemon在文件更改时自动重新启动服务器,您可以使用名为Concu
有人对此有什么想法吗?如果nodemon在文件更改时自动重新启动服务器,您可以使用名为Concurrent的包 首先作为开发人员依赖项并发安装
npm i concurrently --save-dev
然后编辑您的package.json
"start": "**webpack build** && concurrently --kill-others \"nodemon app.js\" \"**webpack watch**\""
ps:我添加了**占位符,您应该使用生成和监视的命令更改它们之间的命令。我最终使用Webpack/Nodemon节点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);
});
是否可以像这样将webpack watcher与构建分开运行?根据我的理解,它只是一个附加到命令中的标志“-watch”。正如您所提到的,您可以使用我们的无监视程序运行<代码>“开始”:“**并发--杀死他人\”nodemon app.js \“**webpack watch script**\”虽然这可能适用于其他一些用例,但我的用例需要一些更定制的东西。请参阅我的答案。那么您是直接在cli上运行此命令,还是将调用放在npm scripts package.json文件中?