Babel,带有Nodemon脚本的WebPack



我想知道是否有一种使用Babel和Nodemon配置WebPack的方法。我几乎搜索了网络,但没有发现任何帮助,或者可能是我,因为我几乎是构建工具的新事物。我的 package.json中有这个脚本:

"start": "nodemon app.js --exec babel-node"

它会在发生更改时将我的代码转移,还可以重新启动服务器。我想知道WebPack是否有具有手表功能的webpack配置。我可以使用webpack(运行服务器并关注更改并与Babel Transpile一起重新启动(?

您不必使用Nodemon,可以使用WebPack的手表功能。

这是一个示例脚本,我们称其为 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将重新编译并重新启动您的服务器。

至于巴别尔(Babel(部分,我相信巴别级装载机已覆盖您。我在我的webpack.config.js(WebPack 2(中使用它:

module: {
  ...
  rules: [
    {
      test: /.js$/,
      exclude: /node_modules/,
      loader: 'babel-loader',
      query: {presets: ['es2015']}
    }
  ]
}

但是我不使用nodemon,所以很抱歉只有一半的答案。我确实在开发中使用WebPack-Dev-Server。和PM2在分期/生产中,我在登台时使用它的手表,因此我不必手动重新启动内容,并且配置要比webpacks dito容易得多:

// pm2's ecosystem.json (just to be thorough):
"watch"        : "./",
"ignore_watch" : "node_modules", 

不在生产中观看,不,不是,不是我,没有敏感 - 越少的事情越好。

相关内容

  • 没有找到相关文章

最新更新