【问题标题】:Use compilation hash within js file在 js 文件中使用编译哈希
【发布时间】:2018-05-07 06:10:33
【问题描述】:

我使用HtmlWebpackPlugin 通过模板生成我的index.html。我在里面写

var compilationHash = <%= webpack.hash %>

但这当然是在 html 文件中。同样,我想访问捆绑文件中的相同哈希。但显然webpack 在那里不可用。有没有办法以某种方式将 webpack.hash 提供到文件中,以便我可以像 var something = process.env.SOMETHING 那样访问它?

我希望ProvidePlugin 在这里可以派上用场,但不确定如何访问其中的编译哈希。

【问题讨论】:

    标签: webpack webpack-2 html-webpack-plugin


    【解决方案1】:

    所以这有点鸡和蛋。为了生成内容哈希,webpack 需要知道所有内容,但是如果它能够将哈希作为变量注入到包本身中,那么内容哈希将与它已经计算的不同。

    虽然我怀疑为什么您需要在捆绑包中使用散列本身,但您可以通过 webpack 的 global 从捆绑包内部访问您在 HTML 中分配的变量,而无需插件。

    这由 webpack 分配给捆绑包本身在其中执行的任何范围,在像您这样的网页中,将是 window,因此您可以通过 global.compilationHash 访问您的变量

    这有一个警告,即仅在运行时可用,并且除非您提供它,否则将始终未定义(即,如果在您的测试中需要,您需要在执行使用它的代码之前将其提供给测试运行器范围)

    【讨论】:

    • 我后来真的想了想 :P 这真是一个恶性循环。谢谢你的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2014-05-09
    • 2011-10-22
    • 2018-10-20
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多