Hier ist mein aktueller Workflow zum Importieren von Bildern und Symbolen in Webpack über ES6:
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} />
Das wird schnell chaotisch. Folgendes möchte ich:
import * from './images'
<img src={doggy} />
<img src={turtle} />
Ich denke, es muss eine Möglichkeit geben, alle Dateien aus einem bestimmten Verzeichnis als Name ohne Erweiterung dynamisch zu importieren und diese Dateien dann nach Bedarf zu verwenden.
Hat jemand dies gesehen oder hat er sich Gedanken darüber gemacht, wie er am besten vorgehen kann?
AKTUALISIEREN:
Mit der ausgewählten Antwort konnte ich Folgendes tun:
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']} />
r.keys.().map(...)
direkt zurück ...
.map
Art einen Rückgabewert erwartet. In Ihrem Fall würde manforEach
stattdessen eine gute alte verwenden.