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