首页 > 编程语言 >Vue进阶(幺零八):npm run build 错误 (node:7852) UnhandledPromiseRejectionWarning: CssSyntaxError:xxxx. 解决分析

Vue进阶(幺零八):npm run build 错误 (node:7852) UnhandledPromiseRejectionWarning: CssSyntaxError:xxxx. 解决分析

时间:2023-06-03 10:00:55浏览次数:64  
标签:npm node Vue 错误 样式 OptimizeCSSPlugin build 组件

(文章目录)

一、前言

在项目打包过程中,突然报如下错误: 在这里插入图片描述

Vue npm run build 错误 (node:7852) UnhandledPromiseRejectionWarning: CssSyntaxError:xxxx.

但是在执行 npm run dev过程中,并未错误或告警信息。

二、解决方案

打开webpack.prod.conf.js ,注释掉以下配置代码

new OptimizeCSSPlugin({
      cssProcessorOptions: config.build.productionSourceMap
      ? { safe: true, map: { inline: false } }
      : { safe: true }
    }),

有关OptimizeCSSPlugin组件的作用,可参考博文《Vue进阶(五十三):vue-cli脚手架build目录中的webpack.prod.conf.js配置文件》。

通过注释掉该段代码,项目可正常编译。不过,OptimizeCSSPlugin组件的作用主要是实现压缩css代码,还能去掉extract-text-webpack-plugin插件抽离文件产生的重复代码,因为同一个css可能在多个模块中出现(重复出现的样式可以抽离出来作为公共样式文件)所以会导致重复代码。

由此可知,通过使用以上组件,可压缩编译后的CSS项目样式文件。故该组件还是需要使用的。

通过查看错误提示信息,可知是theme-colors.css文件编译报错,由于该文件是由主题色切换生成的样式文件,通过查看处理逻辑,怀疑是颜色替换过程中报错,通过查看替换色使用地方,发现存在循环处理过程中使用同种带替换主题色的情形。 在这里插入图片描述 通过将该颜色码值修改为与待替换主题色不一致,项目编译成功。

问题总结:在循环使用项目主体色过程中,生成压缩后的颜色样式存在问题,具体解决措施暂不考虑。

OptimizeCSSPlugin组件部分还是不应该注掉,虽然可以解决问题,但并不是最优解。还应结合具体的错误原因,找到根本原因,然后解决。其他错误原因可能如下: 在这里插入图片描述

三、拓展阅读

标签:npm,node,Vue,错误,样式,OptimizeCSSPlugin,build,组件
From: https://blog.51cto.com/shq5785/6407540

相关文章

  • vue+elemntUI合并行2
    返回的是一维数组o:[{id:1,name:s;age:11},{id:1,name:s;age:11},{id:2,name:p;age:15}]1、对返回的数据做处理getData(){that.tableData=res.data.data.list;that.getFormatList();//重新合并行},getFormatList(){letrecordObj={};this.re......
  • Vue路由,子路由,动态路由,动态路由参数,路由查询参数
    一、路由、子路由、动态路由子路由、动态路由类似,不同的是子路由同时有路由跳转和页面跳转的,动态路由只有路由跳转,没有页面跳转举例如下:/customerHome 下有 item1 和 item2 两个子路由。import{createRouter,createMemoryHistory,RouteRecordRaw}from'vue-router'......
  • vue 浏览器调试 定位具体行数
    module.exports={lintOnSave:false,devServer:{//开发环境下设置为编译好以后直接打开浏览器浏览open:true,},configureWebpack:(config)=>{//调试JSconfig.devtool="eval-source-map"},css:{//查看CSS属于哪个css文件......
  • vue+elementui 合并行
    1,数据格式是二维的如:o:{id:123,prams:{name:aaa,age:11}}的对象第一步:先获取返回的数据为indexInfoList,遍历转化为一维数组 that.indexInfoList.forEach(ele => {if(ele.prams.length>=1){ele.prams.map((related,index)=>{......
  • Vue——自动切换图片
    利用属性指令+setInterval(是一个实现定时调用的函数)<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="js/vue.js"></script></head>......
  • Vue——属性指令、style和class、条件渲染、列表渲染、事件处理、数据双向绑定、过滤
    vm对象<body><divid="app"><h1>{{name}}</h1><button@click="handleClick">点我</button></div></body><script>//1写在data或method中的属性或方法,从vm中直接可以点出来//2method的函数中,如......
  • vuepress快速安装笔记
    参考https://vuepress.vuejs.org/guide/getting-started.html#prerequisiteshttps://blog.llyth.cn/1065.html注意:应该是cd到新建项目文件夹的docs里,然后yarninstall。在项目文件夹里,执行yarndev启动运行项目,yarnbuild生产静态文件,结果与文件路径如下。waitRenderings......
  • Ubantu使用n升级Node提示权限不够
    升级Node时,常见以下问题:使用nstable时提示权限不够(base)zibuyu@ubuntu:~/Desktop/luffy$nstableinstalling:node-v18.16.0mkdir:/usr/local/n/versions/node/18.16.0mkdir:无法创建目录“/usr/local/n”:权限不够而使用sudonstable时又提示找不到命令......
  • vue解决跨域方法
    什么是跨域  跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。这里列举一个经典的列子:#协议跨域http://a.baidu.com访问https://a.baidu.com;#端口跨域http://a.baidu.com:8080访问http://a.baidu.com:80;#域......
  • vue学习笔记一
    VUE自学目录VUE自学一、vue核心的相关学习一,搭建vue开发环境1.下载vue.js2.下载扩展工具二,helloworld案例三,helloworld项目扩展四,模板语法五,数据绑定六,el和data的两种写法发七,理解MVVM模型八,数据代理1.Object.defineProperty2.什么是数据代理3.vue中的数据代理九,事件处理1.事件......