我刚刚了解到我应该在
@use
中使用 @import
而不是 sass
。但据我了解,我应该使用 npm sass
而不是 npm node-sass
来做到这一点。这两者有什么区别?为什么 @use
和 @forward
不适用于 node-sass
蓝线是
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 实现。