今天创建vue3项目,用cli创建的时候出现了css预处理器的选择,node-sass和dart-scss。记得以前都是选择node-sass,他们的区别忘了,重新查了查这两个的区别,发现已经不是之前记忆的区别了。
先说说node-sass,node-sass底层依赖libsass,是C/C 语言开发的。安装问题比较多,随便查一下node-sass安装这个词条就很多(印象中以前都是用这个,没发现安装问题)。另外就是Windows环境使用的时候必须有python2和vs才能编译成功(其实我忘记了有没有这回事)。现在可以不用管这个了,因为sass官方都宣布要弃用了,公告是2020年10月26号发布的。可以去官网看看:
https://sass-lang.com/blog/libsass-is-deprecated
我看了一下,大概意思就是迭代速度慢,无法更新最新功能。我这翻译的渣渣就不翻译了,还是自己看看。
dart-sass现在是官方推荐的,早在2016年10月31号的公告就说明了为什么重写sass和为什么选择dart以及后续的计划,可以去官网看看:
https://sass-lang.com/blog/announcing-dart-sass
大概的意思是sass之前的实现ruby sass迭代容易,但是运行速度慢,不易安装。libsass则是速度快,迭代慢。选择dart,速度是rubby sass的5-10倍,只比libsass慢1.5倍左右。而且dart可以编译输出JavaScript,兼容nodejs。里面用了好多easy to。
所以,以后选择的时候直接选择dart-sass,都不用考虑两个到底是说明区别,记住dart-sass是官方推荐,兼容nodejs,node-sass算是被弃用,不需要考虑用node是不是就一定要用它。
为什么脚手架不直接只出现dart-sass,还出现node-sass选项呢?
创建项目的时候,ESLin提供了几个选择:
ESLint with error prevention only
意思是只有错误的时候才报错,我新建了一个项目,大概试了试,空格、分号之类的都不会报错,只有语法错误才会提示。
ESLint Airbnb config
网上看见的几乎都是说不严谨格式,并不是,Airbnb是一家叫做爱彼迎的公司,一般来说不同公司都有自己的一套eslint的标准(一般都是大公司),既然这个模式会拿来选择,应该表示算是做的比较好的吧。感兴趣可以看看:
https://github.com/airbnb/javascript
ESLint Standard config
翻译过来是标准模式,感兴趣的可以看看这个模式的配置,我是看不来,太多了:
https://github.com/standard/eslint-config-standard/blob/master/eslintrc.json
ESLint Prettier
翻译一下,是追求最完美的一种模式,找了半天没找到这个模式的配置,有知道的可以分享一下。
其实eslint我几乎没用过,关于代码格式,跟同事约定好用哪张格式化之后,直接用编辑器保存自动格式化。