Quindi ecco il mio attuale flusso di lavoro per importare immagini e icone nel webpack tramite 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} />
Questo diventa disordinato velocemente. Ecco cosa voglio:
import * from './images'
<img src={doggy} />
<img src={turtle} />
Sento che ci deve essere un modo per importare dinamicamente tutti i file da una directory specifica come loro nome senza estensione e quindi utilizzare quei file secondo necessità.
Qualcuno l'ha visto, o ha qualche idea sul modo migliore per farlo?
AGGIORNARE:
Utilizzando la risposta selezionata, sono stato in grado di farlo:
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
aspetta un valore di ritorno. Nel tuo caso, invece, si userebbe un buon vecchioforEach
.