为了账号安全,请及时绑定邮箱和手机立即绑定

vue-cli配置Webpack

vue-cli配置Webpack

慕工程0101907 2019-05-13 08:53:34
想在Webpack中添加如下配置:(src/icons中的svg文件用svg-sprite-loader载入,其他文件夹中的svg用url-loader载入){test:/\.svg$/,loader:'svg-sprite-loader',include:[resolve('src/icons')],options:{symbolId:'icon-[name]'}},{test:/\.(png|jpe?g|gif|svg)(\?.*)?$/,loader:'url-loader',exclude:[resolve('src/icons')],options:{limit:10000,name:utils.assetsPath('img/[name].[hash:7].[ext]')}},vue-cli{//添加loaderconfig.module.rule('svg').test(/\.svg$/).use('svg-sprite-loader').loader('svg-sprite-loader')//.include([resolve('src/icons')]).options({symbolId:'icon-[name]'}).end()//修改loader配置config.module.rule('svg').test(/\.(png|jpe?g|gif|svg)(\?.*)?$/).use('url-loader').loader('url-loader').tap(exclude=>{exclude=[resolve('src/icons')]returnexclude})}}
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

还是这个文档..里面有讲规则替换方法
暂时实现统一用svg-sprite-loader载入,后面再研究下分区文件夹..
module.exports={
chainWebpack:config=>{
constsvgRule=config.module.rule('svg')
//clearallexistingloaders.
//ifyoudon'tdothis,theloaderbelowwillbeappendedto
//existingloadersoftherule.
svgRule.uses.clear()
//addreplacementloader(s)
svgRule
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId:'icon-[name]'
})
}
}
                            
查看完整回答
反对 回复 2019-05-13
?
呼如林

TA贡献1798条经验 获得超3个赞

这样是可以的。而且写include和exclude要在use和loader之前写
module.exports={
chainWebpack:config=>{
config.module
.rules
.delete('svg')
config.module
.rule('svg')
.test(/\.(svg)(\?.*)?$/)
.include
.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId:'icon-[name]'
})
}
}
                            
查看完整回答
反对 回复 2019-05-13
  • 含泪奔跑o
    含泪奔跑o
    大佬麻烦解释下config.module.rule('icons').test(/\.svg$/) .include .add(resolve('src/icons')) .end() include和add分别是什么意思吗?
  • 2 回答
  • 0 关注
  • 1038 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号