gpt4 book ai didi

node.js - 如何将 WebWorker 与 ts-node 一起使用? (没有网络包)

转载 作者:行者123 更新时间:2023-12-02 11:04:07 52 4
gpt4 key购买 nike

有没有办法在不使用 webpack 的情况下将 ts-node 与 WebWorkers 结合使用

当我这样做时:

const worker = new Worker('path-to/workerFile.ts', {//... });

我得到:

类型错误 [ERR_WORKER_UNSUPPORTED_EXTENSION]:
工作脚本扩展名必须是“.js”或“.mjs”。在新 Worker 处收到“.ts”(internal/worker.js:272:15)
//....

有什么想法吗?

托默

最佳答案

您可以使用 WorkerOption 参数的 eval 属性创建一个函数来发挥魔法。

const workerTs = (file: string, wkOpts: WorkerOptions) => {
wkOpts.eval = true;
if (!wkOpts.workerData) {
wkOpts.workerData = {};
}
wkOpts.workerData.__filename = file;
return new Worker(`
const wk = require('worker_threads');
require('ts-node').register();
let file = wk.workerData.__filename;
delete wk.workerData.__filename;
require(file);
`,
wkOpts
);
}

所以你可以像这样创建线程:

let wk = workerTs('./file.ts', {});

希望对你有帮助。

关于node.js - 如何将 WebWorker 与 ts-node 一起使用? (没有网络包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52955197/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com