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 automated migrator: https://sass-lang.com/d/slash-div

这是因为Dart sass 新版本目弃用“/”的用法

sass报错:Using / for division is deprecated and will be removed in Dart Sass 2.0.0._第1张图片

二、解决方法

1、【亲测有效】package.json设置"sass":"1.32.13"

将package.json里的sass版本指定为1.32.13,重新install下npm就不会告警

2、使用sass-migrator将文件批量改写成math.div

步骤如下:

npm install -g sass-migrator
进入项目根目录
执行sass-migrator division **/*.scss

3、使用推荐的math.div

在当前文档 style 标签内的最上方,注意,是最上方,在所有代码之前,添加:

就好了。否则没有引入sass:math会报错

sass报错:Using / for division is deprecated and will be removed in Dart Sass 2.0.0._第2张图片

如果你没有添加上最上方,在编译的时候也会提示你 @use 代码需要在所有代码之前使用。

sass报错:Using / for division is deprecated and will be removed in Dart Sass 2.0.0._第3张图片

4、在uni.scss中写@use

在组件里使用@use会报错,必须写在uni.scss中。

三、总结

        不懂是为什么,反正我的项目是uniapp的vue2的版本,然后sass原来在package.json里的版本是^1.26.11,但是实际安装的是1.34+的版本了。查资料都是说让用math.div,但是其实都没有作用。要嘛说是@use地方要在头部,要嘛说@use要放在uni.scss中,还有说是使用sass-migrator官方的工具库来批量替换写法。

        最后反正我是将sass版本固定为1.32.13,就不会出现告警了

你可能感兴趣的:(css,sass,前端,css)