美文网首页
element UI在webpack打包后图标不显示的问题

element UI在webpack打包后图标不显示的问题

作者: LingSun | 来源:发表于2020-04-27 09:56 被阅读0次

https://www.cnblogs.com/EassieLee/p/11289521.html

最近在项目中遇到elementUI中icon在webpack打包后不显示的问题,记录一下解决方案。

本项目使用的是webpack的MiniCssExtractPlugin进行打包,我看网上很多都是ExtractTextPlugin的解决方法,但是ExtractTextPlugin在webpack4中会有点问题,所以现在基本都是使用MiniCssExtractPlugin。

MiniCssExtractPlugin的解决方案

在build/webpack.base.conf.js中

module:{
  rules: [ 
    ...(config.dev.useEslint ? [createLintingRule()] : []),
    {
      test: /.(woff2?|eot|ttf|otf)(?.*)?$/,
      loader: 'url-loader',
      options: {
        limit: 10000,
        publicPath: '../../',
        name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
      }
    }
  ]  
}
因为打包后woff、eot、ttf、otf的路径找不到才导致404,所以将这几个的publicPath设为'../../'再打包就可以了。

下面说一下ExtractTextPlugin的解决方案

config文件夹下index.js文件中build 改成 assetsPublicPath: './',

build文件夹下webpack.prod.conf.js文件改成
output: {
publicPath: './',
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},

build文件夹下utils.js中添加如下:
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
publicPath: '../../', //添加部分
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}

相关文章

网友评论

      本文标题:element UI在webpack打包后图标不显示的问题

      本文链接:https://www.haomeiwen.com/subject/nfnhwhtx.html