升级 vue-cli (vue-svg-loader) 后 Vue svgs 停止工作
Vue svgs stopped working after upgrading vue-cli (vue-svg-loader)
在我们的项目中,我们使用 vue-svg-loader(最新版本)和以下配置文件 vue.config.js
:
const svgRule = config.module.rule('svg')
svgRule.uses.clear()
svgRule
.use('babel-loader')
.loader('babel-loader')
.end()
.use('vue-svg-loader')
.loader('vue-svg-loader')
.options({
svgo: {
plugins: [{ removeViewBox: false }]
}
})
不幸的是,我们的 @vue/cli-service
5.0.4 从 @vue/cli-service
3.4.0 升级后
一切正常,但我们的 svgs 不再加载,出现以下错误:
[Vue warn]: Invalid Component definition: /public/img/island-small.3fa8ec4c.svg found in <ZnLogin> at src/pages/login/login.vue
我试过各种版本、各种配置(大部分是默认配置),但似乎没有任何效果。我希望保留当前的使用方法:
<template>
<VueLogo/>
</template>
<script>
import VueLogo from './public/vue.svg';
export default {
name: 'Example',
components: {
VueLogo,
},
};
</script>
有什么想法吗?
查看此问题。
https://github.com/visualfanatic/vue-svg-loader/issues/185
更改 vue 配置对我有用。
// vue.config.js
module.exports = {
chainWebpack: (config) => {
config.module.rules.delete("svg");
config.module.rule("svg")
.test(/\.(svg)(\?.*)?$/)
.use("babel-loader")
.loader("babel-loader")
.end()
.use("vue-svg-loader")
.loader("vue-svg-loader");
},
};
在我们的项目中,我们使用 vue-svg-loader(最新版本)和以下配置文件 vue.config.js
:
const svgRule = config.module.rule('svg')
svgRule.uses.clear()
svgRule
.use('babel-loader')
.loader('babel-loader')
.end()
.use('vue-svg-loader')
.loader('vue-svg-loader')
.options({
svgo: {
plugins: [{ removeViewBox: false }]
}
})
不幸的是,我们的 @vue/cli-service
5.0.4 从 @vue/cli-service
3.4.0 升级后
一切正常,但我们的 svgs 不再加载,出现以下错误:
[Vue warn]: Invalid Component definition: /public/img/island-small.3fa8ec4c.svg found in <ZnLogin> at src/pages/login/login.vue
我试过各种版本、各种配置(大部分是默认配置),但似乎没有任何效果。我希望保留当前的使用方法:
<template>
<VueLogo/>
</template>
<script>
import VueLogo from './public/vue.svg';
export default {
name: 'Example',
components: {
VueLogo,
},
};
</script>
有什么想法吗?
查看此问题。
https://github.com/visualfanatic/vue-svg-loader/issues/185
更改 vue 配置对我有用。
// vue.config.js
module.exports = {
chainWebpack: (config) => {
config.module.rules.delete("svg");
config.module.rule("svg")
.test(/\.(svg)(\?.*)?$/)
.use("babel-loader")
.loader("babel-loader")
.end()
.use("vue-svg-loader")
.loader("vue-svg-loader");
},
};