之前在项目中遇到过,scss不是分工的问题,当时项目比较忙,没有及时处理,但是心里一直有一根刺,像张爱玲的红玫瑰,让我心烦意乱。现在有时间,我要把这根刺拔掉。位置不对是因为运行项目后,使用了除法,提示错误,点击进入官方解决方案。官方有两种解决方案,一种是引用@use"sass:math";,使用math。div(100%,24)是另一种写法。另一种是全局下载sass-migrator来转换目标文件。但也应该有一种情况必须使用除法。从PR来看,没有必须用到除法的场景。不幸的是,我会忘记它。我再查看一下,发现指定的bindingsass是可以使用的。这是一个日本人。书面计划。所以大概有3种方法可以解决。先用第一种方法。确实在开发环境中没有报错,但是在构建的时候却报Error:InvalidCSSafter"...ion-delay:math"。第二条,第一条PS:这里不得不批评一下自己。看了报错信息才知道用到了node-sass。node-sass不支持这种写法,但是我当时没有认真看报错信息,直接去谷歌改改。我的项目是基于umi开发的。我使用scss是因为安装了它的插件:@umijs/plugin-sass我的@umijs/plugin-sass已经升级到最新版本,也就是说使用了DartSass。DartSass是问题吗?胡乱搜索的时候,发现了这篇文章,一头雾水。这是因为您需要使用sass而不是node-sass。删除node-sass并使用sass代替,这个错误应该消失翻译是因为你需要使用sass而不是node-sass。删除node-sass并使用sass,这个错误应该会消失。我的做法是直接升级整个项目,大致npmupdate然后删除package.json中的node-sass(一开始伤到自己),然后删除整个node_modules,然后重新下载rm-rfnode_modulesyarn,结果一目了然,于是解决了心中的一根刺。@umijs/plugin-sass源码解读找问题的时候看了@umijs/plugin-sass的源码,贴出来看import{IApi,utils}from'umi'exportdefault(api:IApi)=>{api.describe({config:{schema(Joi){returnJoi.object({implementation:Joi.any(),sassOptions:Joi.object(),prependData:Joi.alternatives(Joi.string(),Joi.func()),sourceMap:Joi.boolean(),webpackImporter:Joi.boolean(),})},},})api.chainWebpack((memo,{createCSSRule})=>{createCSSRule({lang:'sass',测试:/\.(sass|scss)(\?.*)?$/,加载器:require.resolve('sass-loader'),选项:utils.deepmerge({实现:require('sass'),},api.config.sass||{},),})returnmemo})}由于不熟悉webpack,以下语句均未参考api.describe不懂api.chainWebpack部分大概是webpack规则的一些写法,也就是跟进前端工程系列的时候用sass的写法来补充扩展阅读。Sass是一门CSS预处理语言Sass和Ruby语言写的Scss其实是一回事。我们通常称之为Sass。两者之间主要有两个区别:文件扩展名不同。Sass使用后缀“.sass”作为扩展名,而Scss使用后缀“.scss”作为扩展名,语法不同。Sass是用严格的缩进语法规则编写的,没有大括号({})和分号(;),而Scss的语法与我们的CSS语法非常相似。.
