代码编织梦想

今天拉取代码,重新执行pnpm i安装依赖后。发现终端出来了一堆sass的警告,

Deprecation Warning: Sass’s behavior for declarations that appear
after nested rules will be changing to match the behavior specified by
CSS in an upcoming version. To keep the existing behavior, move the
declaration above the nested rule. To opt into the new behavior, wrap
the declaration in & {}.

More info: https://sass-lang.com/d/mixed-decls

┌──> node_modules\element-plus\theme-chalk\src\mixins_button.scss
159│ padding: $padding-vertical $padding-horizontal; │
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declaration ╵
┌──> node_modules\element-plus\theme-chalk\src\button.scss 71 │ ┌ &

  • & { 72 │ │ margin-left: 12px; 73 │ │ } │ └─── nested rule

原因

根据给的错误信息,在sass官网可以看到说明。sass新版本有破坏性变更。
https://sass-lang.com/d/mixed-decls

在这里插入图片描述

简单来说就是,sass为了迎合css的行为,对原来的嵌套规则了做了限定。但是很多组件库都是旧的写法。包括我们项目常用的elemnet-plus。可以在错误信息看到,很多指向的都是element的组件样式。

相关issues讨论 https://github.com/element-plus/element-plus/issues/17487

解决方法

知道原因后,我认为这样的变更覆盖面太广,很多组件库不可能第一时间做出更新,况且还有自己写的代码还有不再维护的组件库。所以要想解决这个问题,最好的办法就是降低sass的版本。

版本是在1.77.7开始的。 所以可以固定sass的版本在1.77.6之前。
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42190844/article/details/140377744

sass学习笔记 — 4. 参考手册_天水一方_sky的博客-爱代码爱编程

Sass 是对 CSS 的扩展,让 CSS 语言更强大、优雅。 它允许你使用变量、嵌套规则、 mixins、导入等众多功能, 并且完全兼容 CSS 语法。 Sass 有助于保持大型样式表结构良好, 同时也让你能够快速开始小型项目, 特别是在搭配 Compass 样式库一同使用时。 特色 完全兼容 CSS3在 CSS 语言基础上添加了扩展功能,比如变

sass入门_Sass入门-爱代码爱编程

sass入门 New SASS tutorial tells about many aspects of using SASS: installation, known facts, variables, mixins, nested rules, inline imports, and more. It certainly will be usef

css规则_CSS规则,将使您的生活更轻松-爱代码爱编程

css规则 by Nick Gard 尼克·加德(Nick Gard) CSS规则,将使您的生活更轻松 (CSS rules that will make your life easier) After years of writing and maintaining a couple of very large web projec

项目实践记录-爱代码爱编程

一、 DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.解决方法 sass 新版本目弃用“/”的用法,sass自定义element theme时会报warnning, 解决步骤如下: npm install

sass报错:using / for division is deprecated and will be removed in dart sass 2.0.0.-爱代码爱编程

一、运行uniapp项目时报如下警告 项目 运行中 DEPRECATION WARNING : Using / for division is deprecated and will be removed in Dart Sass 2.0.0. Recommendation: math.div(100%, $i) More info and automa

sass版本更新,不推荐使用嵌套规则后的声明_deprecation warning: sass's behavior for declarati-爱代码爱编程

目前在 Sass 中不推荐使用嵌套规则后的声明,在 为了通知用户即将进行的更改,并给他们时间进行更改 与之兼容的样式表。在未来的版本中,Dart Sass 将更改为 匹配纯 CSS 嵌套生成的顺序。Deprecation Warning: Sass's behavior for declarations that appear after nested r

【sass警告】 sass‘s behavior for declarations that appear after nestedrules will be changing to match t_sass's behavior for declarations that appear after-爱代码爱编程

运行项目时sass会出现这种警告 虽然不影响代码运行 ,但是看着很不舒服 警告内容解释 Deprecation Warning: 表示这是一个废弃警告,意味着在未来的版本中,某些行为将会改变。 Sass's behavior for declarations that appear after nested rules: 这指的是在嵌套规则之后出现的

scss nesting新版本下的变化_to opt into the new behavior, wrap the declaration-爱代码爱编程

报错信息 Deprecation Warning: Sass's behavior for declarations that appear after nested rules will be changing to match the behavior specified by CSS in an upcoming version. To keep

vue报错:avoid mutating a prop directly since the value will be overwritten whenever the parent compone-爱代码爱编程

报错截图: 原因: 在 Vue.js 中,直接修改一个来自父组件的 prop(属性)是不被推荐的,因为这样做会违反组件间的单向数据流原则。当你尝试直接修改一个 prop 时,如果父组件重新渲染(例如,由于数据变化或响应式依赖更新),这个 prop 的值将会被父组件中的原始值覆盖,从而导致你的修改丢失。 修改代码: 父组件 父组件: