Как обрабатывать импорт SVG (ES6) в накопительный пакет
Если я импортирую файл SVG в модуль ES6, как мне справиться с этим в накопительном пакете? В настоящее время у меня есть что-то вроде этого (простой пример того, что я делаю):
import next from '../assets/next.svg';
export default () => console.log('Here is some Svg: ! ', next);
И у меня есть свертка конфигурации, которая выглядит так:
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
export default {
entry: 'src/app.js',
dest: 'build/app.min.js',
format: 'iife',
sourceMap: 'inline',
plugins: [
babel({
exclude: 'node_modules/**',
}),
resolve({
jsnext: true,
main: true,
browser: true,
}),
commonjs(),
],
};
И тогда я получаю следующую ошибку:
Не удалось разрешить "../assets/next.svg" из /home/magnferm/projects/slask/rollup-test/src/chill/index.js
В этом пути нет ничего плохого, но накопительный пакет, похоже, не знает, как обрабатывать svg-файлы. Есть ли плагин, который я могу использовать для этого, или я должен как-то относиться к нему по-другому?
1 ответ
Был плагин для этого, конечно. Он называется rollup-plugin-image и обрабатывает, среди других форматов, импорт.svg:
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import image from 'rollup-plugin-image';
export default {
entry: 'src/app.js',
dest: 'build/appn.min.js',
format: 'iife',
sourceMap: 'inline',
plugins: [
babel({
exclude: 'node_modules/**',
}),
resolve({
jsnext: true,
main: true,
browser: true,
}),
commonjs(),
image()
],
};