如何在 npm 模块上使用 web worker

How to use web worker on a npm module

我正在编写一个 JavaScript 库,并且我正在使用网络工作者。我正在使用 webpack(带有 worker-loader)来创建我的构建。 图书馆一切正常。

webpack.config.js

{
    test: /app.worker.ts$/,
    include: [
        path.resolve(__dirname, 'src/')
    ],
    use: [
        {
            loader: 'babel-loader',
        },
        {
            loader: 'worker-loader',
            options: {
                name: 'app.worker.js',
            }
        }
    ]
}

生成:

/dist/app.bundle.js // my main library build
/dist/app.worker.js // my worker build

当我尝试在反应应用程序上导入我的库时,我的库尝试像这样加载工作程序: http://localhost:3000/dist/app.worker.js。 这显然失败了,因为它位于 node_modules/.../dist/app.worker.js.

我可能没有正确使用worker-loader。

感谢您的帮助

好的,我刚发现问题。 我不知道为什么,但问题与 yarn link 有关。如果我将 package.json 中的 link: 替换为 file:,我就没有问题了。

另一种(非最佳)解决方案是使用inline:true。

有人知道 yarn link 的解决方案或解决方法吗? 谢谢!