生产环境中出现了“找不到模块 'worker_threads'”的错误。

22

我创建了一个利用worker线程的Node.js项目。当我在VS Code中运行npm start时,代码可以正常工作。但是当我将其构建并复制到Ubuntu服务器上时,它显示“找不到模块'worker_threads'。”

在生产环境中部署带有worker线程的 Node.js 是否需要进行其他配置呢?顺便说一下,以下是我在 Ubuntu 服务器上部署它的方式。

1.) 因为我的项目是TypeScript,所以我使用“tsc”命令编译它。 2.) “tsc”命令生成了“build”文件夹。 3.) 我将 package.json 和 package-lock.json 复制到“build”文件夹中。 4.) 将“build”文件夹压缩,并使用“scp”命令传输到 Ubuntu 服务器。 5.) 在 Ubuntu 服务器上,我解压缩了“build”文件夹。 6.) 我在“build”文件夹中运行“npm install”以下载依赖项。 7.) 我尝试使用“node ./src/main.js”和“pm2 start ./src/main/js”运行我的程序,但都无法成功。

使用上述过程部署的其他没有 worker 线程的项目没有问题。

提前感谢!


1
你在Ubuntu服务器上使用的Node.js版本是什么? - Lambda Fairy
在Windows上使用Git SDK MingGW时,运行yarn install时出现了这个错误。但是当我切换到使用普通的Git for Windows Shell时,错误就消失了。Git for Windows有两个版本 - 普通的Git Bash和一个带有更多功能的SDK版本。 - Sahil Singh
在Windows上使用Git SDK MingGW时,运行yarn install时出现了这个错误,但是当我切换到使用普通的Git for Windows Shell时,错误就消失了。Git for Windows有两个版本 - 普通的Git Bash和一个带有更多功能的SDK版本。 - undefined
4个回答

33

也许您的 node.js 版本低于 12.x。Worker 支持要求在 10.5 版本之后。 尝试将以下内容添加到您的 package.json 文件中。

"scripts": {
    "start": "node --experimental-worker ./src/main.js"
}

3
我曾在Ubuntu 2004上安装了较旧版本的Node.js - 我卸载了通过apt安装的版本,并使用snap安装了最新的Node.js。 - Ľubomír Mlích
我升级了Node版本(到19.x.x),虽然我之前的版本是10.19.0,但现在它可以正常工作了。谢谢。 - rkalra

5
在我的 Glitch 网站中,我通过将以下内容添加到我的 package.json 文件来解决此问题:
  "engines": { "node": "16.x" }

1
我解决了从Node 10.16.2切换到16.13.2的问题(使用nvm节点版本管理器)。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接