项目升级Sass版本或升级Element Plus版本遇到的问题

ops/2025/2/5 3:21:57/

项目升级Sass版本或升级Element Plus版本遇到的问题

如果项目有需求需要用到高版本的Element Plus组件,则需要升级相对应的sass版本,Element 文档中有提示,2.8.5及以后得版本,sass最低支持的版本为1.79.0,所升级sasssass-loader。Sass在1.80版本以上有语法发生了变化,接下来跟大家聊一下在升级升级Element Plus版本时,同时需要升级Sass版本遇到的问题。

升级Element Plus

直接在项目中运行命令:

pnpm install element-plus@latest

升级Sass

直接在项目中运行命令:

pnpm install sass@latest sass-loader@latest

升级完成后运行项目,发现控制台出现了错误:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/48b6213feefa42ebace9aea4a53eb074.png
这是因为升级sass版本后API发生了变化,解决方案:
1.在项目的 vite.config.ts 文件中的修改 css->preprocessorOptions->scss 的配置项

css: {// CSS 预处理器preprocessorOptions: {// 定义全局 SCSS 变量scss: {javascriptEnabled: true,additionalData: `@use "@/styles/variables.scss" as *;`,api: "modern-compiler" // 改变api方式},},
},

2.如果配置了还会出现再加上 silenceDeprecations 配置项

css: {// CSS 预处理器preprocessorOptions: {// 定义全局 SCSS 变量scss: {javascriptEnabled: true,additionalData: `@use "@/styles/variables.scss" as *;`,api: "modern-compiler", // 改变api方式silenceDeprecations: ['legacy-js-api']},},
},

重新运行项目,发现刚刚的报错已经消失。但是出现了新的错误:
在这里插入图片描述
这是因为升级sass版本语法改变,解决方案:
全局搜索以前使用 @import 引入的代码,改为使用 @use 引入

@import"./reset";    ->   @use "./reset";
@import"./common";   ->   @use "./common";
@import"./sidebar";  ->   @use "./sidebar";

再次运行项目,刚刚报错已经不见。但是,又报了全局变量未定义的错误:
在这里插入图片描述
通过网上搜索,发现基本都是说要在 vite.config.ts 文件中的修改 css->preprocessorOptions->scss->additionalData 的配置项,指向你自己定义的文件路径,可是我刚刚已经配置过了,却还是不行,这就很奇怪了
在这里插入图片描述
又只能继续搜索,通过不断的搜索和尝试,最终发现:只要在报错的文件顶部加上全局变量即可,比如我是在sidebar.scss文件中报错的,那么我找到sidebar.scss文件在顶部添加全局变量即可

注意:后面务必加上 as *

在这里插入图片描述
最后在运行项目,成功运行也不报错了!

参考文章:
遇到升级新版sass(1.80以上)的相关配置问题
升级Element Plus版本,如何解决报错以及需要修改哪些配置


http://www.ppmy.cn/ops/155751.html

相关文章

IM 即时通讯系统-43-简单的仿QQ聊天安卓APP

IM 开源系列 IM 即时通讯系统-41-开源 野火IM 专注于即时通讯实时音视频技术,提供优质可控的IMRTC能力 IM 即时通讯系统-42-基于netty实现的IM服务端,提供客户端jar包,可集成自己的登录系统 IM 即时通讯系统-43-简单的仿QQ聊天安卓APP IM 即时通讯系统-44-仿QQ即…

Redis常见命令

redis常见命令 命令格式功能案例set key value将key-value缓存redis中set name Xiaomingget key从redis中获取key对应value值get nameincr key将key对应value值1incr agedecr key将key对应value值-1decr agesetex key seconds value将key-value缓存到redis中,second…

C#常用744单词

1.visual 可见的 2.studio 工作室 3.dot 点 4.net 网 5.harp 尖端的,锋利的。 6.amework 骨架,构架,框架 7.beta 测试版,试用版 8.XML(全称:eXtensible Markup Language&#xff09…

如何在Arduino上使用NodeMCU

要在 Arduino IDE 中烧录 NodeMCU,可以按照以下步骤进行: 准备工作 硬件准备: 一根 USB 数据线,用于连接电脑和 NodeMCU 开发板。NodeMCU 开发板(CH340 驱动版)。 软件准备: 安装 Arduino IDE…

时序论文37 | DUET:双向聚类增强的多变量时间序列预测

论文标题:DUET: Dual Clustering Enhanced Multivariate Time Series Forecasting 论文链接:https://arxiv.org/pdf/2412.10859 代码链接:https://github.com/decisionintelligence/DUET (后台回复“交流”加入讨论群&#xff…

如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?

我使用DeepSeek AI和Dexscreener API构建的一个简单的 AI 加密交易机器人实现了这一目标。在本文中,我将逐步指导您如何构建像我一样的机器人。 DeepSeek 最近发布了R1,这是一种先进的 AI 模型。您可以将其视为 ChatGPT 的免费开源版本,但增加…

图 、图的存储

图的基本概念: 图g由顶点集v和边集e组成,记为g(v,e) 用|v|表示图g中顶点的个数,也称图g的阶,用|e|表示图g中边的条数 线性表可以是空表,树可以是空树,但图不可以是空&…

代码随想录算法训练营第四十二天-动态规划-股票-188.买卖股票的最佳时机IV

题目要求进行k次买卖其实就是上一题的扩展,把2次扩展为k次定义动规数组依然是二维,第一个维度表示第几天,第二个维度表示第几次买入和卖出所以第二个维度的长度应该是2k1在for循环内,要使用一个内循环来表示第几次买入或卖出&…