【发布时间】:2019-10-02 15:50:58
【问题描述】:
使用 CLI (v3.7.0) 创建新项目时,可以选择dart-sass 或node-sass 编译器。
它们如何相互比较,比Vue docs 中声明的更具体?
关于 Sass 性能的提示
注意,使用 Dart Sass 时,同步编译是两倍 默认情况下与异步编译一样快,因为 异步回调。为了避免这种开销,您可以使用光纤 包从同步代码路径调用异步导入器。 要启用此功能,只需将纤程安装为项目依赖项:
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
EDIT 2020/01: Vue CLI 4.2.2 create new project 仍然建议 dart-sass 作为 node-sass 之前的第一个选项。然而,这里已经确定node-sass 是性能更高的选择,而almost nobody uses dart-sass(ccleve 的评论)。
EDIT 2020/09:随着 Ali Bahrami 更新他的广泛答案,dart-sass 是首选,因为 node-sass 被标记为已弃用。
太糟糕了dart-sass,它是一个 JS 编译的版本,性能很差。但是,它的开发人员很清楚这一点,并正在努力实现更高的性能,如this issue 所述。
【问题讨论】:
-
截至 2020 年 2 月,似乎没有人在使用 dart-sass:npmtrends.com/dart-sass-vs-node-sass。 node 每周下载 350 万次,dart 下载 16,000 次。
-
@ccleve 那是因为 dart-sass 使用最频繁的发行版是 sass 包,截至 2020 年 5 月,该包目前每周有 200 万次下载。npmtrends.com/sass-vs-node-sass
-
我很好奇为什么 npm 上有两个 dart-sass 实现。 sass 目前是最新版本,v 1.26.5,而dart-sass 是 1.25。不管node-sass 仍然使这两者相形见绌:npmtrends.com/sass-vs-node-sass-vs-dart-sass
-
只是一点点更新,截至 2021 年 7 月,sass 已经超越 node-sass!
标签: vue.js webpack sass vue-cli node-sass