есть отдельный проект в котором разрабатываются компоненты, и потом пушаться в npm репозиторий, все в принципе работало норм, но тут появилась надобность упаковать в один из компонентов пару изображений, которые в нем-же и отображаются.
Проблема в том, что в основном приложении, при импорте компонента в src изображения попадает (unknown), если удалить картинку из папки компонента в node_modules, то приложение перестает работать с ошибкой Uncaught Error: Cannot find module. Ну т.е. я так понимаю, что сам компонент этот файл импортит...
Сейчас для себя вижу решение в преобразовании всех картинок в base64... Но хотелось бы без этих танцев...
Я с вебпаком мало работал, подскажите в какую сторону копать?
Какого формата изображения? Мелкие иконки или прям изображения?
Ну пока мелкие. Думаю большие изображения нету смысла в компоненты пихать Я пробовал через file-loader, но что-то у меня не вышло (
Ты не понял вопрос) Это ИКОНКИ или изображения. Просто если с иконками что-то можно придумать, то с изображениями ответ простой - их не должно быть в бандле
Какая разница между иконками и изображениями??? Если вопрос в том, с какой целью используются изображения - то да, это иконки. Мой вопрос чисто технический, поэтому не касается того что должно или не должно быть в бандле.
Технически: Делаешь у себя в библиотеке директорию со статичными свг-иконками (все должны быть в +- одной структуре), пишешь компонент SvgIcon (как в MUI), берёшь svgr, пишешь конфиг для генерации компонентов из статики, в шаблоне пишешь компонент-обертку над своим базовым SvgIcon - готово, у тебя теперь мини-библиотека иконок. Не технически: Большая разница что это - иконки или нет. Иконки ты можешь +- эффективно обработать и сгенерировать библиотечные компоненты, картинки - всегда статика, это не свг, они весят дохрена и в бандле быть не должны
Иконка это не про тип, а про размер\назначение. SVG - это просто векторное изображение, которое может и не быть иконкой. Так же как PNG спокойно может иконкой быть ) Но в общем, я вашу мысль понял, к сожалению этот варик мне не подходит ( Буду копать дальше
А почему не подходит? Оно идеально попадёт в бандл, достаточно просто реэкспортнуть сгенерированные компоненты (или что там нужно)
Потому что изображения будут как в svg так и png.
UPD. Вообщем немного разобрался, сделал через url-loader и теперь в продакшене собственно все работает, а вот в деве нет (. Есть идеи?
У меня так, тут немного сахара і специфического, дальше сам)
Это к чему? Я уже подключил через url-loader проблема сейчас в другом - не работает в дев режиме, т.е. когда webpack-dev-server запущен.
Ну я поделился какой у меня в кастомном вебпаке конфиг для картинок
Ясно, с этим я уже разобрался )) Файл лоадер тож работает, но только в прод
Обсуждают сегодня