Description
- Version: 10.6
- Platform: Darwin Kernel Version 17.3.0
- Subsystem: workers
Relative path resolution in worker_threads
does not quite do what is expected. I created a simple repo that simulates a yarn workspace environment where the issue is manifesting. However while the packages/*/
structure is there, there is no actual references between workspace packages, rather just 3 files that reference each other.
https://github.com/jacogr/node-worker-path
To Reproduce just run npm run test
. Basically where packages/worker/src/index.js references the worker (which is in the same directory), the creation fails - Node is looking for the file in the root.
File does a const worker = new Worker('./worker.js')
, where worker.js
and the index.js
is right alongside each other.
events.js:167
throw er; // Unhandled 'error' event
^
Error: Cannot find module '/Users/jacogreeff/Projects/polkadot/node-worker-path/worker.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at MessagePort.port.on (internal/worker.js:425:27)
at MessagePort.emit (events.js:182:13)
at MessagePort.onmessage (internal/worker.js:66:8)
Emitted 'error' event at:
at Worker.[kOnErrorMessage] (internal/worker.js:296:10)
at Worker.[kOnMessage] (internal/worker.js:306:37)
at MessagePort.Worker.(anonymous function).on (internal/worker.js:243:57)
at MessagePort.emit (events.js:182:13)
at MessagePort.onmessage (internal/worker.js:66:8)
error Command failed with exit code 1.
It looks for Cannot find module '...node-worker-path/worker.js
while the correct path in this case would be ....node-worker-path/packages/src/worker.js