node-sass和dart-sass区别(以及解决M1芯片/arm芯片无法使用node-sass的问题)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node-sass和dart-sass区别(以及解决M1芯片/arm芯片无法使用node-sass的问题)相关的知识,希望对你有一定的参考价值。

参考技术A 我们先用vue-cli举例

在这时我们可以看到有两个sass解释器一个为node-sass,另一个为dart-sass。
这里建议选择大家使用dart-sass。而不要使用node-sass,下面我会解释一下为什么推荐大家使用dartsass。

单独安装和dart-sass或node-sass的命令先贴在下面

我们选择dart-sass很重要的一点就是 sass官方推荐使用dart-sass
往后的node-sass虽然会继续维护,但是不会再更新新功能。
不过就目前来说,node-sass在编译时依然比dart-sass拥有更好的性能(个人觉得编译时性能对开发不构成影响)。
国内网络对node-sass不太友好。

启动报错症状:

安装报错症状:

解决方案:
从package.json文件中找到node-sass删掉
然后使用命令安装dart-sass

问题原因:
这个问题的原因其实我们从node-sass的github上的版本中可以找到答案

可以看到都macOSX系统仅仅支持x64而M1芯片是arm64并不是x86。
也就是说如果我们的nodejs环境若为使用rosetta转译运行的x86 64位nodejs版本,那么就可以使用这个node-sass并且不会报错。
所以网上有些人说让回退nodejs版本,因为老版本nodejs不兼容arm64,那时候还没有M1芯片啊!QWQ。
老版本nodejs只能用resetta转译运行啊。

以上是关于node-sass和dart-sass区别(以及解决M1芯片/arm芯片无法使用node-sass的问题)的主要内容,如果未能解决你的问题,请参考以下文章

dart-sass 和 node-sass 的区别

dart-sass 和 node-sass 的对比

vue-cli 3中dart-sass替换node-sass

vue-cli 3中dart-sass替换node-sass

vue-cli 3中dart-sass替换node-sass

node-sass升级为dart-sass