打字稿找不到模块 'worker_threads'

Typescript cannot find module 'worker_threads'

我正在尝试将 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 的任何额外配置吗?

这个问题是因为我使用的是很旧的版本。更新后,问题解决了。 如果有人遇到同样的问题,请在 package.json 中更新这些版本 - 我已经更新到

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

还要确保 Nodejs 版本为 12 LTS 或更高版本以获得稳定的 'worker-thread' 支持。

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

之后

所以在尝试了几次之后,我就是这么做的:

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

  • ng update

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

然后我 运行 ng serve 一切都恢复正常了。

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

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

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