如何解决打字稿找不到模块“worker_threads”
我正在尝试在 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,workerData } from 'worker_threads';
工作线程在节点 11 之后变得稳定。所以它应该可以工作。 我做错了什么?
PS - 我用 JS 运行了相同的代码,它运行良好,所以我不认为它的 Node.js 问题。其他核心库如 fs 也工作正常。我需要为 TS 做任何额外的配置吗?
解决方法
就我而言,这个问题发生在我的 Angular 项目中 npm audit fix --force
所以经过几次尝试后,我做到了:
- 使用
sudo n stable
更新节点(您应该先安装 Node 的版本管理器)
ng update
此命令将在名为更新命令的列中为您提供一些建议,分别运行每个命令并确保其正常工作。
然后我运行 ng serve
,一切都恢复正常。
将此 package.json 文件与您的 ts 文件一起用作 index.ts
问题将得到解决
{
"name": "threads-worshop","version": "1.0.0","description": "","main": "index.js","scripts": {
"test": "echo \"Error: no test specified\" && exit 1","start:build": "tsc -w","start:run": "nodemon build/index.js","start": "concurrently npm:start:*"
},"author": "","license": "ISC","dependencies": {
"@types/node": "^14.14.10","concurrently": "^5.3.0","nodemon": "^2.0.6"
}
}
在 macOS bigSur 11.0.1 上品尝
,这个问题是我使用的版本很旧。更新后,问题得到解决。 如果有人面临同样的问题,请在您的 package.json 中更新这些版本 - 我已经更新到
- "@types/node": "14.14.14"
- "ts-node": "9.1.1"
还要确保 Nodejs 版本为 12 LTS 或更高版本,以获得稳定的“工作线程”支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。