7

我正在尝试将 node.js 'worker_threads' 库与 Node v14.15.1 一起使用并收到此错误

Cannot find module 'worker_threads' or its corresponding type declarations.ts(2307)
tsc 

src/api/services/email.service.ts:1:62 - error TS2307: Cannot find module 'worker_threads'.

1 import { Worker, isMainThread, parentPort, workerData } from 'worker_threads';
                                                              

Found 1 error.

我的代码 -

import { Worker, isMainThread, parentPort, workerData } from 'worker_threads';

工作线程在节点 11 之后变得稳定。所以它应该可以工作。我究竟做错了什么 ?

PS - 我用 JS 运行了相同的代码,它运行良好,所以我不认为它的 Node.js 问题。fs 等其他核心库也运行良好。我需要为 TS 做任何额外的配置吗?

4

3 回答 3

4

这个问题是我使用的是相当旧的版本。更新后,问题得到解决。如果有人面临同样的问题,请在您的 package.json 中更新这些版本 - 我已更新为

  • “@types/节点”:“14.14.14”
  • “ts节点”:“9.1.1”

还要确保 Nodejs 版本为 12 LTS 或更高版本,以获得稳定的“工作线程”支持。

于 2020-12-26T12:14:23.883 回答
2

就我而言,这个问题发生在我的Angular项目之后npm audit fix --force

因此,经过几次尝试,这就是我所做的:

  • 更新节点sudo n stable(你应该先安装节点的版本管理器)

  • ng update

此命令将在名为Command的列中为您提供一些建议,以分别运行更新并确保其正常工作。

然后我跑ng serve了,一切都恢复了正常。

于 2021-06-09T13:48:31.363 回答
0

我在ubuntu上遇到了同样的错误。我最近在我的新机器上安装了节点。我以前在Windows上。我意识到我使用的是更旧版本的节点(v10 或类似版本)。

将节点版本升级到最新的 v16.13.1 后,我能够解决错误。我还必须删除 node_modules 文件夹和 package-lock.json 文件。我接受了上面 Rohan 的建议,并按照此处提供的说明进行操作:

https://github.com/enable3d/enable3d/issues/231

于 2021-12-20T00:22:44.423 回答