javascript - 在 Web Worker 中加载 Nodejs 模块
我打算在我的 Node.js 应用程序中使用 web worker 来处理一些并发任务。然而,由于 'webworker-threads' 模块遵循 HTML5 web worker 的实现方式,在 web worker 中使用 Node.js 模块(如 require("fs"))是行不通的。importScripts() 可以加载 js 文件,但我希望在 web worker 内部实现一种功能,以便我可以 require 安装的 npm 模块。有没有解决方法?
答案#1
我是 webworker-threads 的作者。感谢你使用这个模块!
有一个默认的 native_fs_ 对象,其中有 readFileSync 可供你用来读取文件。
除此之外,我主要依靠 onejs 将 package.json 中的所有所需模块编译成一个单独的 JS 文件供 importScripts 使用,就像部署到客户端 web worker 环境时所做的那样。(还有许多 onejs 的替代方案 —— browserify 等。)
希望这能帮到你!