2017-11-23 13 views
1

私はHtmlWebpackPluginを使用して、index.htmlテンプレートを生成します。そこに私は書きますjsファイル内でコンパイルハッシュを使用

var compilationHash = <%= webpack.hash %> 

しかし、これはもちろんHTMLファイルです。同様に、バンドルファイル内の同じハッシュにアクセスしたいと思います。しかし明らかにwebpackは利用できません。何とかwebpack.hashをファイルに提供する方法はありますか?私はそれが私のやり方と同じようにアクセスできますvar something = process.env.SOMETHING

私はProvidePluginがここに便利だと思っていましたが、そこにどのようにコンパイルハッシュにアクセスできるかわかりません。

答えて

2

これは少し鶏と卵です。コンテンツハッシュを生成するために、webpackはすべてのコンテンツを知っている必要がありますが、ハッシュをバンドル自体に変数として挿入できるのであれば、コンテンツハッシュはすでに計算したハッシュとは異なります。

なぜ私はバンドルの中にハッシュ自体が必要なのか疑問に思っていますが、Webpackのglobalで、プラグインを必要とせずにバンドル内からHTMLに割り当てた変数にアクセスできます。

これは、バンドル自体はあなたがglobal.compilationHash

を経由して、あなたの変数にアクセスすることができますので、これだけであることの注意点があり、windowだろうあなたのようなWebページでは、内で実行されてきたものは何でもスコープにWebPACKので割り当てられています実行時に利用可能であり、提供しない限り常に未定義です(つまり、テストで必要な場合は、テストランナーのスコープにコードを渡す必要があります)

+0

実際に後で考えました。 Pそれは本当に悪循環です。説明ありがとう。 –

関連する問題