javascript - 如何使用 webpack 包含 worker/process 文件

标签 javascript node.js webpack

我有一个创建子进程的文件,代码类似这样:

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 目录中。因此,您的上述代码略有变化(包括 workers 目录中的 worker.js)。

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

module.exports(process);

要将 workers 文件夹复制到您的 build/dist 文件夹,您可以使用 copy-webpack-plugin .在您的情况下,可以在 webpack 配置文件中像这样使用插件。

var CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = {

//你输入和输出的配置当然会不同 条目:'./main.js', 输出: { 文件名:'dist/bundle.js' }, 目标:' Node ', 插件:[ 新的 CopyWebpackPlugin([ { 来自:' worker ', 到:'dist/workers' } ]) ]

你的 bundle 仍然没有 worker.js 文件,但引用将适用于 fork 方法。

关于javascript - 如何使用 webpack 包含 worker/process 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521024/

相关文章:

javascript - Discord.js 提及,用户未定义

javascript - 如何使用 javascript 播放 dailymotion 中的视频?

javascript - 表单验证在使用 Angular JS 和 Node JS 的 MEAN Stack 中不起作用

node.js - Amazon Alexa、alexa-app 和中间件

javascript - JavaScript绘制流程图的绘图库

Webpack 无法编译简单应用程序

javascript - 我无法在 create-react-app 中配置代理

reactjs - 使用 webpack 和 babel 捆绑和部署 React 应用程序时未显示 Unicode 字符

javascript - 计算有多少个复选框被选中

javascript - jquery 脚本在 safari 中不起作用