Typescript cannot find module 'worker_threads'

27.7k views Asked by At

I am trying to use node.js 'worker_threads' library with Node v14.15.1 and getting this error

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.

my code -

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

worker threads got stable after node 11. So it should work. What am i doing wrong ?

PS - I ran same code with JS and it worked fine so i don't think its Node.js issue. Other core libraries like fs are also working fine. Do I need any additional config for TS ?

3

There are 3 answers

2
Rohan Gulati On BEST ANSWER

This issue was that I was using quite old versions. After updating, the issue was resolved. If someone faces same issue, update these versions in your package.json - I have updated to

  • "@types/node": "14.14.14"
  • "ts-node": "9.1.1"

Also make sure Nodejs version is 12 LTS or above to have stable 'worker-thread' support.

0
Vala Khosravi On

In my case, this problem happened in my Angular project after npm audit fix --force

So after few attempts here's what I did:

  • updating node with sudo n stable (you should install Node’s version manager first)

  • ng update

This command will give you few recommendations in a column named Command to update run each separately and make sure it worked correctly.

Then I run ng serve and everything got back to normal.

1
Nishant On

I got the same error on ubuntu. I recently installed node on my new machine. I had been on Windows before. I realized that I was using a much older version of node (v10 or similar).

After upgrading the node version to the latest v16.13.1, I was able to resolve the error. I also had to delete the node_modules folder and package-lock.json file. I took Rohan's suggestion above and followed the instructions provided here:

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