Vue CLI CSS预处理器选项:dart-sass VS节点-sass?

当创建与CLI(v3.7.0)的新项目中,有之间进行选择的选项dart-sassnode-sass编译器。

它们之间如何进行比较,以比Vue docs中声明的更具体

Sass性能技巧

请注意,使用Dart Sass时,由于异步回调的开销,默认情况下,同步编译的速度是异步编译速度的两倍。为了避免这种开销,您可以使用Fiber包从同步代码路径中调用异步导入器。为此,只需将光纤安装为项目依赖项即可:

npm install -D fibers

另请注意,由于它是本机模块,因此在操作系统和构建环境上可能存在兼容性问题。在这种情况下,请运行npm uninstall -D fibers以解决问题。

? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)
❯ Sass/SCSS (with dart-sass)
  Sass/SCSS (with node-sass)
  Less
  Stylus

编辑2020/01: Vue CLI 4.2.2创建新项目仍然建议dart-sass作为之前的第一个选项node-sass然而,这里已经确定这node-sass是性能更高的选择,几乎没有人使用dart-sass(ccleve的评论)。

西里Near2020/03/11 11:50:48

根据官方的sass-lang网站

Dart Sass是Sass的主要实现,这意味着它在任何其他实现之前都具有新功能。它快速,易于安装,并且可以编译为纯JavaScript,从而可以轻松集成到现代Web开发工作流中。

如果您在Dart-VM内运行Dart-Sass,则运行速度很快,但它表示可以编译为纯JS的npmjs软件包dart-sass只是一个编译版本,比node-sassnative dart-sass

如果您正在寻找测量值,我建议在这里阅读有关信息,其中有示例和不同的编号:

在包含16个导入Bootstrap框架实例的文件上运行:

  • SASSC:0.820秒

  • 脚本快照中的Dart Sass:1.558秒

  • Dart Sass本机可执行文件:0.927s

  • Node.js上的Dart Sass:3.129s基于这些数字,本机可执行文件中的Dart Sass大约为:

  • 比libsass慢1.1倍

  • 比Node上的Dart Sass快3.4倍

这是Dart Sass作为提前编译的本机代码运行的第一次测量,结果令人鼓舞。它远远低于微小文件的100ms阈值,并且在大多数测试用例中都可以与SassC媲美。SassC仍然在许多扩展的测试中处于领先地位,尽管只是很小的一部分,在我们的真实测试案例中仍然处于领先地位(尽管Dart Sass在其他案例中处于领先地位)。可以将这两种实现方式公平地描述为总体上具有相同的性能。

Node上的Dart Sass仍然比Dart VM上的速度慢得多,并且随着原始Dart代码变得更快,相对的速度变得更加明显。

我个人使用dart-sassnpmjs软件包而不是node-sassjs本机C库的包装)的个人经验dart-sass是(比起我,至少50倍,因为我有很多大型主题文件)要慢于node-sass

TomMandy2020/03/11 11:50:48

node-sass不适用于节点v.12