Mic*_*umo 7 javascript webpack vue.js vuejs2 vue-cli
Vue Cli默认file-loader为SVG资产,但我想使用svg-sprite-loader(以及其他一些).
我更新了vue.config.js文件来执行此操作,它似乎仍然使用file-loader.几乎就好像它根本没有拿起我的配置.
vue.config.js
module.exports = {
configureWebpack: {
module: {
rules: [
{
test: /\.(svg)(\?.*)?$/,
use: [
{
loader: 'svg-sprite-loader',
options: {
name: '[name]-[hash:7]',
prefixize: true
}
},
'svg-fill-loader',
'svgo-loader'
]
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的设置有什么问题吗?
当它应该是具有属性的对象时,我仍然将SVG文件作为URL字符串/路径导入到我的组件中.
非常感谢.
小智 7
这花了我一段时间才找到一个解决方案.基本上你需要在.svg上停止文件加载器匹配.我发现这样做的最好方法是使用chainWebpack并从文件加载器上的测试方法返回false.我已经包含了我的工作配置.
module.exports = {
lintOnSave: false,
configureWebpack: {
module: {
rules: [
{
test: /\.(svg)(\?.*)?$/,
use: [
{
loader: 'svg-inline-loader',
options: {
limit: 10000,
name: 'assets/img/[name].[hash:7].[ext]'
}
}
]
}
]
}
},
chainWebpack: config => {
config.module
.rule('svg')
.test(() => false)
.use('file-loader')
}
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5327 次 |
| 最近记录: |