我使用HtmlWebpackPlugin
通过模板生成index.html
。在那里我写
var compilationHash = <%= webpack.hash %>
但这当然是在html文件中。同样,我想在bundle文件中访问相同的哈希。但显然webpack
在那里不可用。有没有办法以某种方式提供webpack.hash到文件中,所以我可以像我var something = process.env.SOMETHING
那样访问它?
我希望ProvidePlugin
在这里可以派上用场,但不知道如何在那里访问编译哈希。
答案 0 :(得分:3)
所以这有点鸡肉和鸡蛋。为了生成内容哈希,webpack需要知道所有内容,但是如果它能够将哈希作为变量注入到包本身中,则内容哈希将与已经计算的内容不同。
虽然我怀疑为什么你需要在bundle中包含hash,你可以通过webpack来访问你在HTML中分配的变量,而不需要插件。 global
。
这是由webpack分配到捆绑包本身在其中执行的任何范围,在您的window
之类的网页中,因此您可以通过global.compilationHash
这有一个警告,只有在运行时可用,并且除非你提供它,否则将始终是未定义的(即如果在测试中需要,在执行使用它的代码之前需要将它提供给测试运行器范围)