3

我的理解是以下 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做什么呢?

4

1 回答 1

2

存在内联加载器语法以允许您在特定实例中覆盖项目中工作程序的默认配置。这可能包括为 webworker 分配文件名输出。

它在 Webpack@4.x 中更有用。现在 Webpack@5.x 已经发布,使用内联加载器的理由越来越少。

更重要的是,在Webpack@5.x.

但是现在对于一些可能不受欢迎的消息 - 工作人员必须始终位于自己的独立文件中,除非您将它们作为 blob 加载,这可能会对您的站点/应用程序产生安全影响。

于 2021-04-23T19:22:25.633 回答