vue2 build打包报错:Error: CSS minification error: Cannot read property ‘unprefixed‘ of undefined.

问题

项目运行正常,但是打包的时候出现了问题,报了下面这个错误。

在这里插入图片描述

找了一圈,好多都说是样式的写法有问题,导致打包出现问题。
但是这真的很难排查,到底哪里样式写的有问题,又或者是不是样式问题?

方案一

于是兜兜转转,又回到了报错本身,找到对应文件,发现了这一行报错代码:
node_modules\@intervolga\optimize-cssnano-plugin\index.js

// Run minification
const promise = postcss([cssnano(cssnanoOptions)])
  .process(originalCss, postCssOptions)
  .then((result) => {
  	...
  ).catch(function(err) {
      hasErrors = true;
      // throw new Error('CSS minification error: ' + err.message +
      //   '. File: ' + assetName);
    }
  );

应该还是 postcss 依赖的问题,但具体目前还排查不出来。
于是我把这行代码注掉,让它顺下去,结果就打包成功了!!

但是这个方法需要改 node_moudles 包文件,不具有普适性,非必要不推荐。

于是又去找其他的解决办法,最后还真让我捞到了一篇靠谱的文章!

方案二(推荐)

删除 vue-cli 自带的压缩 plugin:OptimizeCssnanoPlugin

config.plugins.delete('optimize-css')

vue.config.js

module.exports = {
  chainWebpack(config) {
    config.plugins.delete("preload"); // TODO: need test
    config.plugins.delete("prefetch"); // TODO: need test
    config.plugins.delete('optimize-css') // 删除 vue-cli 自带的压缩 plugin:OptimizeCssnanoPlugin
  }
}

这个方案也可以解决报错问题,顺利打包,而且对打包文件的体积基本没什么影响,推荐!!

参考:
https://www.jianshu.com/p/9e0b3ba734cb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值