如何使用webpack包含工作/进程文件

我有一个创buildsubprocess的文件,代码与此类似:

var cp = require('child_process'); function process () { return cp.fork('./worker'); } module.exports(process); 

但是./worker似乎没有包含在这个包中。 运行process函数时会导致以下错误:

 Error: Cannot find module 'C:\Users\USER\Documents\GitHub\PROJECT\worker' at Function.Module._resolveFilename (module.js:485:15) at Function.Module._load (module.js:437:25) at Function.Module.runMain (module.js:605:10) at startup (bootstrap_node.js:158:16) at bootstrap_node.js:575:3 module.js:487 throw err; ^ 

我怎样才能确保工人文件被捆绑? 我希望我的整个项目在一个文件中。

有一个可能的解决方法。 您可以将所有工作文件复制到dist目录中。 让我们说你有一个workers目录中的所有工人文件。 所以你的上面的代码改变了一点(包括工人direcotory的worker.js)。

 var cp = require('child_process'); function process () { return cp.fork('./workers/worker'); } module.exports(process); 

而要将工作文件夹复制到build / dist文件夹,可以使用copy-webpack-plugin 。 在你的情况下,插件可以像这样在webpackconfiguration文件中使用。

 var CopyWebpackPlugin = require('copy-webpack-plugin') module.exports = { 

//input和输出的configuration会不同,当然input:'./main.js',输出:{filename:'dist / bundle.js'},target:'node',plugins:[new CopyWebpackPlugin [{from:'workers',to:'dist / workers'}])]}

你的bundle仍然没有worker.js文件,但是这个引用对于fork方法是有效的。