У меня есть это в моем vue .config. js:
chainWebpack: (config) => {
const svgRule = config.module.rule('svg');
//svgRule.uses.clear();
svgRule
/* .test(/\.svg$/) */
.include.add(path.resolve(__dirname, "components/svg")).end()
.exclude.add(path.resolve(__dirname, "assets")).end()
.use('svgo-loader')
.loader('svgo-loader')
.options({
plugins: [
{ removeViewBox: false },
{ removeDimensions: true }
]
});
svgRule
.oneOf('vue-template')
.resourceQuery(/vue-template/)
.use('babel-loader')
.loader('babel-loader')
.end()
.use('vue-template-loader')
.loader('vue-template-loader')
.options({ functional: true })
.end()
.end()
.oneOf('external')
.use('file-loader')
.loader('file-loader')
.options({
name: 'assets/[name].[hash:8].[ext]',
});
}
Это, однако, выдает ошибку для всех файлов, которые исключены / или не включены ("активы"), так как нет загрузчик указан.
В основном я хочу загрузить все файлы в каталоге src / components / svg, используя сначала загрузчик sv go, а затем загрузчик vue -template-loader.
Я действительно запутался в том, как выполнить sh это, и конфигурация, которую вы видите, является результатом часов экспериментов и чтения документации.
Ресурсы, за которыми я следил / использовал:
https://codeburst.io/managing-svg-images-in-vue-js-applications-88a0570d8e88
https://github.com/neutrinojs/webpack-chain
И мои первые попытки начались с этой структуры: https://vue-svg-loader.js.org/faq.html#how -to-use-both-inline-and-external-svgs (Vue CLI)
Моя общая задача - загрузить SVG-файлы, преобразовать их в компоненты и, наконец, добавить их в Vuetify пользовательских значков.