您不必使用nodemon,您可以使用webpack's watch feature。
下面是一個示例腳本,讓我們把它backend-dev.js
:
const path = require('path');
const webpack = require('webpack');
const spawn = require('child_process').spawn;
const compiler = webpack({
// add your webpack configuration here
});
const watchConfig = {
// compiler watch configuration
// see https://webpack.js.org/configuration/watch/
aggregateTimeout: 300,
poll: 1000
};
let serverControl;
compiler.watch(watchConfig, (err, stats) => {
if (err) {
console.error(err.stack || err);
if (err.details) {
console.error(err.details);
}
return;
}
const info = stats.toJson();
if (stats.hasErrors()) {
info.errors.forEach(message => console.log(message));
return;
}
if (stats.hasWarnings()) {
info.warnings.forEach(message => console.log(message));
}
if (serverControl) {
serverControl.kill();
}
// change app.js to the relative path to the bundle created by webpack, if necessary
serverControl = spawn('node', [path.resolve(__dirname, 'app.js')]);
serverControl.stdout.on('data', data => console.log(data.toString()));
serverControl.stderr.on('data', data => console.error(data.toString()));
});
當您在您的服務器代碼的更改,您就可以開始在命令行上此腳本
node backend-dev.js
,的WebPack將重新編譯並重新啓動服務器。
您通常不會將Webpack用於服務器部件,它更有針對性地捆綁客戶端資源,如瀏覽器JS,CSS,圖像等。有什麼特別的原因可以說明您希望爲服務器使用Webpack ? – damd
對服務器使用webpack有很好的理由,例如,如果你在服務器端編譯React組件 –
@PatrickHund:你說得對,但是因爲OP是新的工具,所以我只是想讓當然,他們知道他們爲什麼使用它:) – damd