【发布时间】:2021-01-07 16:45:38
【问题描述】:
我的理解是以下 Webpack worker-loader 配置:
...
module: {
rules: [
{
test: /worker\.js/,
loader: "worker-loader",
options: {
inline: 'fallback',
}
}
{ ... }
]
}
...
会将工作文件(在本例中名为 worker.js)与其他 JS 文件捆绑到输出文件中,从而产生单文件输出。然后在应用程序中加载文件使用
import Worker from "worker-loader!./worker.js";
将成功加载 Worker。经过测试,似乎我理解错了。 inline 不会将worker打包成单个文件;它在输出目录中创建一个单独的文件。
那么,inline 到底在做什么呢?
【问题讨论】:
-
当你在 webpack 中使用加载器时,你正在为文件的导入创建规则。在加载模块时使用内联工作程序会否决
webpack.config.js中的模块加载器。您应该只使用导入 Worker。import Worker from 'worker.js';。从文档看来,inline只是用于不支持工作人员的浏览器的后备,这在当今是一个罕见的例外。 caniuse.com/webworkers。它会创建一个单独的文件,但如果使用支持 WebWorker 的浏览器,则不应使用它。 -
well worker 是另一个 js 解释器实例,它评估一些代码,并且代码作为来自主进程的 blob 或者它指向您的“单独文件”的路径传递到 worker 中跨度>
-
内联符号只是指定应该为特定的导入文件使用什么加载器。
标签: javascript web webpack worker worker-loader