在生产中找不到模块“worker_threads”错误

Posted

技术标签:

【中文标题】在生产中找不到模块“worker_threads”错误【英文标题】:Cannot find module 'worker_threads' error in production 【发布时间】:2020-09-28 12:48:54 【问题描述】:

我创建了一个使用工作线程的节点 js 项目。当我在 VS Code 中运行 npm start 时,代码运行良好。但是在 Ubuntu 服务器中构建和复制时,它显示“找不到模块 'worker_threads'”。

在生产中使用工作线程部署 node js 时是否必须进行额外的配置?顺便说一下,我如何在 Ubuntu 服务器中部署它。

1.) 因为我的项目是打字稿,所以我使用 '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'运行我的程序无济于事

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

提前致谢!

【问题讨论】:

你在 Ubuntu 服务器上使用的是什么版本的 Node.js? 【参考方案1】:

也许您的 node.js 版本低于 12.x。 10.5 之后支持工人。 尝试将此添加到您的 package.json。

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

【讨论】:

我在 Ubuntu 2004 上有较旧的 nodejs 版本 - 我删除了 apt 安装的版本并使用 snap 安装了最新的 nodejs

以上是关于在生产中找不到模块“worker_threads”错误的主要内容,如果未能解决你的问题,请参考以下文章

Django 在生产中找不到通过 CSS 文件链接的图像

在生产中使用实体框架(代码优先)迁移

在 Docker-Compose 上运行时找不到模块

生产中的前缀错误 | Symfony 5 |找不到路线

如何修复生产中找不到的 vue 动态异步组件?

在没有 Traceur 的情况下在生产中使用 SystemJS