什么是 npm node-sass 和 npm sass 的区别?

13
我刚刚学习到在sass中应该使用@use而不是@import。但是据我了解,我应该使用npm sass而不是npm node-sass来实现这一点。这两者之间有什么区别?为什么node-sass上不能使用@use@forward
1个回答

14

受欢迎程度

蓝色线条代表node-sass,橙色线条代表sass的受欢迎程度。

enter image description here

sass 的 Id docs 中,你可以看到以下比较:

  • Dart Sass:这个包是由 Dart Sass 编译而来,可以作为一个独立的可执行文件或者作为一个 Dart 库来使用。在 Dart VM 上运行 Dart Sass 比纯 JavaScript 版本要快得多,因此对于性能敏感的应用程序可能更合适。目前 Dart API 比 JavaScript API 更加用户友好。有关如何使用它的详细信息,请参阅 Dart Sass README。
  • Node Sass:这是一个围绕 LibSass 的 C++ 实现的 Sass 包装器。Node Sass 支持与此包相同的 API,速度也更快(虽然通常比 Dart Sass 慢一点)。但是,它需要一个本地库,安装可能会比较困难,并且添加功能和修复错误通常会更慢。

性能

这里有一个 答案,可以进行 Bootstrap 4 的比较。

enter image description here

在这种情况下,两秒钟并不是什么大不了的事情;但需要考虑到Dart-Sass(JS)比Dart-Sass(Dart VM)慢九倍,比node-sass慢三倍。
关于此基准测试的更多细节,请参见article
维护
Node-sass被视为已弃用, 但您可以看到这两个软件包经常更新
为什么@use和@forward在node-sass上无法工作
因为在node-sass中,您有一个C实现(LibSass),它没有像sass中使用的dart实现那样经常更新。

非常微小,但是你提到的链接的GitHub问题中说的是“已弃用”而不是“折旧”。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接