【问题标题】:How to prevent webpack DefinePlugin from changing vendor bundle file name?如何防止 webpack DefinePlugin 更改供应商捆绑文件名?
【发布时间】:2020-02-19 10:38:02
【问题描述】:

我关注了 webpack caching guide,现在我有 3 个捆绑包:main、runtime 和 vendor。

但是,在我的 webpack.config.js 中,我使用 DefinePlugin 将 package.json version 导出到 UI,如下所示:

new DefinePlugin({
  'process.env': {
    VERSION: JSON.stringify(`v${packageJSON.version}`)
   }
}),

这会导致我的供应商捆绑文件名随着 UI 的每个版本而改变。

如何将使用 DefinePlugin 定义的全局变量放入主包中?

【问题讨论】:

    标签: caching webpack


    【解决方案1】:

    原来问题出在用 DefinePlugin 定义的键上:'process.env'

    我们错过了阅读插件warning box,因此 webpack 用我们的对象替换了第三方库中出现的每个 process.env。由于我们还包含应用版本,因此每个版本生成的 vendors.*.js 捆绑包都不同。

    通过将 process.env 重命名为 env(并相应地更改我们的代码),webpack 现在能够生成相同的 vendors.*.js 包,无论我们的应用版本如何。

    【讨论】:

      猜你喜欢
      • 2022-07-10
      • 2017-09-08
      • 1970-01-01
      • 2016-10-30
      • 2017-08-12
      • 2023-03-23
      • 2018-05-10
      • 1970-01-01
      • 2020-09-20
      相关资源
      最近更新 更多