ES6を介して画像とアイコンをwebpackにインポートするための現在のワークフローは次のとおりです。
import cat from './images/cat1.jpg'
import cat2 from './images/cat2.svg'
import doggy from './images/doggy.png'
import turtle from './images/turtle.png'
<img src={doggy} />
これはすぐに乱雑になります。ここに私が欲しいものがあります:
import * from './images'
<img src={doggy} />
<img src={turtle} />
特定のディレクトリからすべてのファイルを拡張子ではなく名前として動的にインポートし、必要に応じてそれらのファイルを使用する方法が必要だと思います。
これが行われたのを見た人、またはそれについて最善の方法を考えている人はいますか?
更新:
選択した答えを使用して、これを行うことができました:
function importAll(r) {
let images = {};
r.keys().map((item, index) => { images[item.replace('./', '')] = r(item); });
return images;
}
const images = importAll(require.context('./images', false, /\.(png|jpe?g|svg)$/));
<img src={images['doggy.png']} />
.map
期待値の戻り値を指摘したいだけです。あなたのケースでは、forEach
代わりに良いol 'を使うでしょう。