【问题标题】:How to pass the build hash as an environment variable in webpack?如何在 webpack 中将构建哈希作为环境变量传递?
【发布时间】:2016-12-29 04:59:45
【问题描述】:

我有一个使用经常部署的 webpack 构建的内部应用程序。为了使错误报告更容易,我想包含一个构建哈希 [hash] 的环境变量,webpack 添加到包名称中。这可以让我快速确定用户是否使用最新版本。

使用DefinePlugin,以下内容不会插入字符串,而是仅存储文字[hash] 字符串。

new webpack.DefinePlugin({
  'process.env': {
    'HASH': JSON.stringify('[hash]')
  }
})

有没有什么方法可以直接将哈希作为变量访问,或者有什么特定的方法可以对其进行插值?

【问题讨论】:

    标签: javascript webpack environment-variables


    【解决方案1】:

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

    扩展API插件

    new webpack.ExtendedAPIPlugin()

    将有用的免费变量添加到包中。

    __webpack_hash__ 编译的哈希值作为免费变量提供。

    这不能在 DefinePlugin() 中使用,但它会创建一个全局的 __webpack_hash__ 变量,可以从包内的任何位置访问。

    var hash = __webpack_hash__;
    

    【讨论】:

    • 这是否意味着__webpack_hash__ 现在只是我捆绑包中的一个全局变量?还是有其他方法可以访问它?
    • 是的。我不知道其他的使用方法。
    • 值得注意的是,如果您在 html 文件 "${webpack_hash}" 中使用插值,则哈希将不是正确的。所以我回退到在运行时在 html 中设置哈希。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多