私はカスタムイメージを表示し、他の複数のコンポーネントで使用することができ、再利用可能なAngular2コンポーネントを書くことができるようにしたいコンテキストに従っていません。私は、イメージをカスタマイズ可能に表示し、テンプレートで使用する変数を渡したいと思います。しかし、Webpackを使用してビルドする場合、Webpackはファイルを一緒にパッケージ化するときにテンプレート内のリンクをたどろうとし、{{ variableName }}
が見つかりません。
コード
:私のWebPACK Configで
<img src='{{ imgToShow }}' />
:
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'file?name=assets/[name].[hash].[ext]'
},
構築しようとすると、WebPACKのが次のエラーを与える:
Module not found: Error: Can't resolve '{{ imageToShow }}'
私はすでに力ですべてのイメージをパッケージ化しようとした:
のWebPACKの設定では:
entry: {
'img': './app/img.js',
'app': './app/app.js'
}
アプリで/ img.js:
function requireAll(r) { r.keys().forEach(r); }
requireAll(require.context('./assets/img/', true, /(\.png|\.jpg|\.gif)$/));
しかし、それはまだありません作業。 Webpackはまだファイルを読み込もうとしますが、私の設定でローダーからpng
とjpg
マッチャーを削除しても、Angular2は実行時にファイルを処理できません。
どのようにWebpackでAngular2のさまざまな画像を動的に表示できますか?
これは機能します。しかし、今私はコンパイルされたファイル名をどのように取得するのですか? Webpackはキャッシュ無効化のためにファイル名にハッシュ値を追加します。 –
webpackコピープラグインを使用してすべてのイメージをdistにコピーする必要があります。イメージのようなwebpackを持つファイルが必要で、チャンクを使用するとイメージファイルの名前が変更され、それ以上は機能しません。 [このプラグインについては、ここで読む](https://www.npmjs.com/package/copy-webpack-plugin) –