我正在编写一个NodeJS应用程序,我想使用worker_threads来消除第三方模块(mfrc522-rpi
(对_mfrc522.findCard()
的阻塞I/O调用,该调用会延迟同一应用程序中WebApi的请求处理。
当我尝试引用TypeScript文件中的worker_threads
模块时,我会收到以下WebPack错误消息:
const { Worker } = require('worker_threads');
ERROR in ./core/command-processing/rfid-command-processor.ts
Module not found: Error: Can't resolve 'worker_threads' in '/home/pi/leabox/src/core/command-processing'
@ ./core/command-processing/rfid-command-processor.ts 11:19-44
@ ./core/leabox-controller.ts
@ ./index.ts
但我可以直接执行以下命令:
node -e "require('worker_threads'); console.log('success');
输出:success
- 节点版本:11.15.0
- WebPack版本:4.41.2
- TypeScript版本:3.6.4
在启动应用程序之前通过命令行激活对node.js的实验工作者支持为我解决了问题:
export NODE_OPTIONS=--experimental-worker
请查看此线程以了解更多信息。