首页 > 解决方案 > 使用 Webpack 的 ProvidePlugin 为 worker 指定不同的模块?

问题描述

我想使用 Webpack 的 ProvidePlugin一个自由变量替换为一个函数。在工人中,我想用不同的实现来替换它。

webpack 的worker-loader和 GoogleChromeLabs 的WorkerPlugin似乎都不允许这样做。后者很有希望,但是尽管它声称它“在捆绑工作代码时不运行任何配置的 Webpack 插件”,但主配置中的 ProvidePlugin 与传递给 WorkerLoader 的插件交互。

这是一个简单的示例配置(仅插件部分):

plugins: [
  new webpack.ProvidePlugin({
    _X_: ['/path/to/a', 'default'],
  }),
  new WorkerPlugin({
    globalObject: false,
    plugins: [
      new webpack.ProvidePlugin({
        _X_: ['/path/to/b', 'default'],
      }),
    ],
  }),
]

我的问题是:如何为工人中的自由变量指定不同的实现(模块)?

我不依赖于任何特定的插件或加载器(ProvidePlugin、worker-loader、worker-plugin),但越标准越好。

标签: webpack

解决方案


答:我不知道如何指定变量的不同实现,但我知道为一个模块做。
我刚刚更新了repo,希望对你有帮助。
现在它甚至可以在深度工作器依赖项下工作。


推荐阅读