如何使用 webpack 处理 Web Workers "standard" 语法?
How to handle Web Workers "standard" syntax with webpack?
我想知道是否真的可以在 webpack 中处理 Web Worker "standard syntax"(例如 var worker = new Worker('my-worker-file.js');
)以及如何处理?
我知道 worker-loader 但据我所知它需要特定的语法并且与标准语法不兼容。
换句话说,是否可以在不更改代码的情况下将该文件与 webpack 捆绑在一起? -> https://github.com/mdn/simple-web-worker/blob/gh-pages/main.js#L8
有了browserify, I would use workerify transform,但是我在webpack的世界里找不到任何东西
您可以配置 Webpack 将您的 worker js 文件打包到一个单独的包中。在 webpack.config.js
:
{
entry: {
bundle: './app/main.js',
worker: './app/my-worker-file.js'
},
output: {
filename: '[name].js'
}
...
}
这样您可以获得两个包:bundle.js
与您的主应用程序和 worker.js
与工作入口点。然后,在你的主包中,你可以做 new Worker('worker.js')
worker-loader
基本上是一样的。每当通过它加载某些东西时,它都会创建一个单独的包条目,可以这么说,它被自动命名为 [hash].worker.js
。然后它将此文件名存储到从 require('worker!...')
返回的函数中,该函数只是将其传递给 new Worker
。最后,它与我上面描述的过程完全相同,唯一的区别是捆绑包的名称是自动为您管理的。
从webpack5开始,webpack提供the built in way of handling web work没有worker-loader
我想知道是否真的可以在 webpack 中处理 Web Worker "standard syntax"(例如 var worker = new Worker('my-worker-file.js');
)以及如何处理?
我知道 worker-loader 但据我所知它需要特定的语法并且与标准语法不兼容。
换句话说,是否可以在不更改代码的情况下将该文件与 webpack 捆绑在一起? -> https://github.com/mdn/simple-web-worker/blob/gh-pages/main.js#L8
有了browserify, I would use workerify transform,但是我在webpack的世界里找不到任何东西
您可以配置 Webpack 将您的 worker js 文件打包到一个单独的包中。在 webpack.config.js
:
{
entry: {
bundle: './app/main.js',
worker: './app/my-worker-file.js'
},
output: {
filename: '[name].js'
}
...
}
这样您可以获得两个包:bundle.js
与您的主应用程序和 worker.js
与工作入口点。然后,在你的主包中,你可以做 new Worker('worker.js')
worker-loader
基本上是一样的。每当通过它加载某些东西时,它都会创建一个单独的包条目,可以这么说,它被自动命名为 [hash].worker.js
。然后它将此文件名存储到从 require('worker!...')
返回的函数中,该函数只是将其传递给 new Worker
。最后,它与我上面描述的过程完全相同,唯一的区别是捆绑包的名称是自动为您管理的。
从webpack5开始,webpack提供the built in way of handling web work没有worker-loader