Я пишу плагин, который создает спрайт SVG. Он просматривает каталоги, объединяет SVG-файлы в одном изображении и возвращает результат. Идея состоит в том, чтобы динамически создавать модуль (содержащий объединенные изображения), чтобы другие модули могли требовать его как обычного модуля. Или, может быть, вы можете предложить более элегантное решение?Webpack динамически создает модуль
Config
{
plugins: [
new SvgSpritePlugin({
sprites: {
icons: 'images/svg/icons/*.svg',
logos: 'images/svg/logos/*.svg',
socials: 'images/svg/logos/{twitter,youtube,facebook}.svg',
}
})
]
}
Где-то в приложении
var logosSprite = require('sprite/logos'); // require dynamically created module
document.body.appendChild(logoSprite);
Я пытаюсь сделать подобное. Хотелось бы узнать, как ввести модуль из плагина. – 4m1r
Вы попробовали [webpack-svgstore-plugin] (https://github.com/lgordey/webpack-svgstore-plugin)? Похоже, он решает ту же проблему. – Kreozot
@Kreozot svgstore-plugin делает другую вещь - он выделяет активы во время компиляции webpack. Я хочу работать с svg, как с регулярными модулями, и строить только необходимые файлы. Я пишу [svg-sprite-loader] (http://github.com/kisenka/webpack-svg-sprite-loader) (высоко экспериментально). – kisenka