TypeScript 无法找到模块 'worker_threads'。

9

我正在尝试在 Node v14.15.1 中使用 node.js 的 'worker_threads' 库,但是遇到了以下错误:

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';

自 Node 11 版本以后,工作线程就变得稳定了。因此,应该可以正常工作。

附注:我用 JS 运行相同的代码,它可以正常工作,因此我认为这不是 Node.js 的问题。其他核心库(如 fs)也正常工作。我需要为 TypeScript 进行任何额外的配置吗?


3
请执行 npm install @types/node 命令,或者使用您选择的软件包管理器执行相应的等效命令。 - Aluan Haddad
1
谢谢,但我已经完成了那个并且其他核心库像“fs”都能正常工作。只是这个库有问题。 - Rohan Gulati
1
验证 @types 包的版本是否正确。 - Aluan Haddad
1
@AluanHaddad 感谢您的帮助。 我不记得为什么,但我使用了非常旧的 @types/node 和 ts-node 版本。 更新后一切都很好。 再次感谢! - Rohan Gulati
1
@RohanGulati 我也遇到了完全相同的问题,你更新了哪个版本的 @types/node 和 ts-node?如果你能在回答或评论中指定步骤,那将非常有帮助。 - ChrisOdney
@ChrisOdney 谢谢提醒。我已经添加了答案。 - Rohan Gulati
3个回答

7
这个问题是因为我使用的版本相当老旧。更新后,问题得到了解决。 如果有人面临同样的问题,请在您的package.json中更新这些版本 - 我已经更新到
  • "@types/node": "14.14.14"
  • "ts-node": "9.1.1"
此外,请确保Node.js版本为12 LTS或更高版本,以获得稳定的“worker-thread”支持。

这对于 "ts-node": "^9.1.1" 和 "@types/node": "^14.14.37" 没有帮助。 - Eugene Zalivadnyi
@EugeneZalivadnyi 这个已经经过了充分测试并适用于这些版本。你遇到了什么问题呢?也许我可以帮助你。 - Rohan Gulati

2
在我的情况下,在 Angular 项目中执行 npm audit fix --force 后出现了这个问题。
所以经过几次尝试,我做了以下操作:
  • 使用sudo n stable更新Node(您应该首先安装Node的版本管理器)

  • ng update

此命令将在名为Command to update 的列中给出几个建议,分别运行每个建议并确保其正常工作。

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

0

我在Ubuntu上遇到了同样的错误。我最近在我的新机器上安装了Node。之前我一直在使用Windows。我意识到我正在使用一个更旧的Node版本(v10或类似版本)。

将Node版本升级到最新的v16.13.1后,我成功解决了错误。我还需要删除node_modules文件夹和package-lock.json文件。我采用了Rohan上面提到的建议,并遵循此处提供的说明:

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


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - MD. RAKIB HASAN

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