如何以包括的WebPack
问题描述:
工人/进程文件我有一个创建子进程的文件,该代码是与此类似:如何以包括的WebPack
var cp = require('child_process');
function process() {
return cp.fork('./worker');
}
module.exports(process);
但./worker
似乎并没有被包含在捆绑。
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;
^
我怎样才能确保工人的文件捆绑,以及:运行process
功能时,这会导致下面的错误?我希望我的整个项目在一个文件中。
答
有一种可能的解决方法。您可以将所有工作文件复制到dist目录中。让我们说你有一个workers
目录中的所有工作文件。所以你的上面的代码稍微改变了一些(包括来自工人direcotory的worker.js)。
var cp = require('child_process');
function process() {
return cp.fork('./workers/worker');
}
module.exports(process);
并且要将worker文件夹复制到build/dist文件夹中,可以使用copy-webpack-plugin。在你的情况下,插件可以像这样在webpack配置文件中使用。
var CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = {
//您的进入和输出的配置将是不同的,当然 条目:” ./main.js', 输出:{ 文件名: 'DIST/bundle.js' }, 目标: '节点', 插件:[ 新CopyWebpackPlugin([{ 从 : '工', 到:“DIST /工人 } ]) ] }
您的软件包仍然没有worker.js文件,但该参考将适用于fork
方法。
这可以工作,但它仍然需要用户下载多个文件,而不是仅仅捆绑一个。 –
你打算如何使用捆绑包?它是一个图书馆吗? –
它是Node.js和浏览器的[图书馆](https://github.com/wagenaartje/netaptic)。对于Node来说,它并不是一个真正的问题,但浏览器需要多个cdn链接来访问库是很奇怪的。 –