如何在webpack包中包含子进程?

时间:2017-07-14 16:18:39

标签: javascript node.js webpack child-process

我有一个Node应用程序,它使用fork方法运行后台进程。问题是从索引运行Web包配置并不会捆绑后台进程的文件,从而在到达fork时导致错误。

所有代码都使用Babel语法和其他一些好东西。

如何告诉webpack还捆绑分叉文件?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我自己偶然遇到了这个问题,我想我可以提到一个快速解决方法是在您的子进程的webpack配置中添加一个附加条目(为子进程创建一个单独的包),然后使其使用该包通过某些解决规则,或仅通过string-replace-loader

一些示例webpack配置:

module.exports = {
   // ...
   target: 'node',
   entry: {
     server: './server/server.js',
     daemon: './daemon.js'
   },
   output: {
     path: path.resolve(__dirname, '../serverdist'),
     filename: '[name].bundle.js'
   },
   module: {
     rules: [
       // ... your other existing rules for building the server code
       {
         test: /placeWhereYouAreCallingFork.js$/,
         loader: 'string-replace-loader',
         options: {
           search: 'daemon.js',
           replace: 'serverdist/daemon.bundle.js'
         }
       }
     ]
   }
   // Other webpack stuff...
};

这取决于替换加载器:

npm install --save-dev string-replace-loader

也许不是最干净的解决方案,但它对我有用,我认为这很简单。