npm node-sass 和 npm sass 之间有什么区别

utk*_*hin 14 css sass npm node-modules node-sass

我刚刚知道我应该使用@use而不是@importin sass。但据我了解,我应该使用npm sass而不是npm node-sass这样做。这两者有什么区别?为什么@use并且@forward不起作用node-sass

Dan*_*iel 15

人气

蓝线是node-sass,橙色是sass人气。

在此输入图像描述

sass自述文件解释了一些差异:

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

表现

答案中涵盖了性能差异,它比较了编译 Bootstrap 4 的差异:

在此输入图像描述

在这种特殊情况下,两秒没什么大不了的;但考虑到 Dart-Sass(JS) 比 Dart-Sass(Dart VM) 慢九倍,比 node-sass 慢三倍。

本文提供了有关此基准测试的更多详细信息。

维护

node-sass被认为已弃用,但您可以看到这两个软件包都发生了频繁的更新。

为什么@use和@forward在node-sass上不起作用

因为node-sass使用用 C 实现的 LibSass,并且不像 Dart 实现那样频繁地接收更新。