Então, aqui está meu fluxo de trabalho atual para importar imagens e ícones no webpack via 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} />
Isso fica bagunçado rápido. Aqui está o que eu quero:
import * from './images'
<img src={doggy} />
<img src={turtle} />
Eu sinto que deve haver alguma maneira de importar dinamicamente todos os arquivos de um diretório específico como seu nome sem extensão e, em seguida, usar esses arquivos conforme necessário.
Alguém viu isso ser feito ou tem alguma opinião sobre a melhor maneira de fazer isso?
ATUALIZAR:
Usando a resposta selecionada, consegui fazer o seguinte:
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
espera um valor de retorno. No seu caso, seria usado um bom e velho emforEach
vez disso.