如何在 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 的解决方案或解决方法吗?
谢谢!
我正在编写一个 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 的解决方案或解决方法吗? 谢谢!