将worker_threads与 node (v11.15.0)、webpack 和打字稿结合使用 -找不到>模块



我正在编写一个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

请查看此线程以了解更多信息。

最新更新