andywer / andywer/threads.js

"Error: Cannot find module '/engine-learn/Worker'" or "Error: expose() called in the master thread."

未关闭
#465 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
3.5k
派生
173
PR 合并指标
30 天内没有已合并 PR

描述

My Nx setup using `threads.js` ain't working...I'm getting either this error:
> Error: Cannot find module 'engine-learn/Worker'

...when my setup looks like this:
```
// index.ts
export * from './EngineLearn';

// Worker.ts
import { expose } from 'threads/worker';

const trainModel = async () => {
console.log("In trainModel");
};

expose(trainModel);

// EngineLearn.ts
import { Pool, spawn, Worker } from 'threads';

export class EngineLearn {
trainModels = async () => {
console.log('Hello');
const pool = Pool(() => spawn(new Worker('./Worker')));
};
}
```
...or, if I export `Worker.ts` in my root `index.ts`, like this:
```
// index.ts
export * from './EngineLearn';
export * from './Worker';
```
...I get:
> "Error: expose() called in the master thread."

It seems the module is not included in the build if I export it in `index.ts`, and so cannot be found; but, if I do, `expose()` is immediately invokes and it gives rise to the other error.

What to do 🤷🏻

I am using the `@nrwl/esbuild:esbuild` build executor.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。