如何在webpack中将构建哈希传递为环境变量?

14
我有一个使用webpack构建的内部应用程序,它经常被部署。为了使错误报告更容易,我想在构建哈希[hash]的环境变量中包含webpack添加到包名称中的值。这将让我快速确定用户是否使用最新版本。使用DefinePlugin,以下内容不会插值字符串,而只是存储文字[hash]
new webpack.DefinePlugin({
  'process.env': {
    'HASH': JSON.stringify('[hash]')
  }
})
有没有一种直接访问哈希变量的方法,或者有没有特定的方法使其插值?
1个回答

15

https://github.com/webpack/docs/wiki/list-of-plugins#extendedapiplugin

ExtendedAPIPlugin

new webpack.ExtendedAPIPlugin()

向捆绑包添加有用的自由变量。

__webpack_hash__ 编译哈希值作为自由变量。

虽然无法在 DefinePlugin() 中使用,但它会创建一个全局的 __webpack_hash__ 变量,可以从您的捆绑包内的任何地方访问。

var hash = __webpack_hash__;

这是否意味着__webpack_hash__现在只是我的捆绑包中的全局变量?还是有其他方法可以访问它? - Soviut
是的,没错。我不知道其他使用它的方法。 - Digger2000
1
值得注意的是,如果您在HTML文件中使用插值"${webpack_hash}",哈希值可能不正确。因此,我会回退到在运行时设置HTML中的哈希值。 - FloG
你的变量名中缺少下划线。 - Mircea D.
你的变量名中缺少了下划线。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接