vue-cli3打包后 element-ui的icon不显示问题

vue-cli3打包后 element-ui的icon不显示问题

icon不显示发现是路径不对,请求路径是/dist/static/css/static/fonts/732389de.element-icons.ttf,多了css/static。正确路径应该是/dist/static/fonts/732389de.element-icons.ttf

vue-cli2可以更改utils.js文件


if (options.extract) {
   return ExtractTextPlugin.extract({
     use: loaders,
     fallback: 'vue-style-loader',
     publicPath: '../../', // 解决ele小图标出不来问题
   })
 } else {
   return .concat(loaders)
 }


然后在config里面的index.js,加入assetsPublicPath: './'

build: {
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),
 
    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: './', //解决打包完路径不对的问题

但是vue-cli3没有了build文件夹,需要自己建vue.config.js文件
配置里面加入publicPath: ‘./’,

module.exports = {
  publicPath: './',
}

然而到了webpack4,不支持自定义这样配置了,需要在rules里面配置

{ test: /\.(sa|sc|c)ss$/,
	use: [
		{
			loader: devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
			options: {
				publicPath: '../../',
			},
		},
		'css-loader',
		'sass-loader'
	]
},

当然开发模式 loader是’style-loader’时,配置项没有publicPath选项

最后

const devMode = process.env.NODE_ENV !== 'production';
let miniCssExtractPluginOption = {};
if (!devMode) {
    miniCssExtractPluginOption = {
        publicPath: '../../'
    };
}
plugins:[
	...
	new MiniCssExtractPlugin({
		filename: "static/css/style.css",
		chunkFilename: "static/css/[name].[hash:5].css"
	}),
	...
],
module: {
	rules:[
		...
		{ test: /\.(sa|sc|c)ss$/,
			use: [
				{
					loader: devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
					options: miniCssExtractPluginOption 
				},
				'css-loader',
				'sass-loader'
			]
		},
		{ test: /\.(woff|woff2|eot|ttf|otf|svg)$/, use: [{loader: 'url-loader',options: {limit: 10000,name: 'static/fonts/[hash:8].[name].[ext]'}}]},
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值