Вариант предварительного процессора CSS Vue CLI: dart-sass VS node-sass? - PullRequest
8 голосов
/ 15 мая 2019

При создании нового проекта с 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

1 Ответ

4 голосов
/ 03 июня 2019

Согласно официальному сайту sass-lang :

Dart Sass - это основная реализация Sass, то есть она получает новые функции перед любой другой реализацией.Он быстрый, простой в установке и компилирует в чистый JavaScript , что облегчает интеграцию в современные рабочие процессы веб-разработки.

Dart-Sass работает быстро, если вы его запустите,внутри Dart-VM, но он говорит , он компилируется в чистый JS .Пакет npmjs dart-sass - это просто скомпилированная версия, которая медленнее, чем node-sass или native dart-sass.

Если вы ищете измерения, я рекомендую прочитать об этом здесь есть примеры и разные числа:

Это первое измерение с использованием Dart Sass в качестве заранее скомпилированного собственного кода, и результаты обнадеживают.Это намного ниже порога в 100 мс для крошечных файлов, и он находится на одном уровне с SassC для большинства тестовых случаев.SassC по-прежнему лидирует для тестов со многими расширениями, хотя и незначительно, и для одного из наших реальных тестовых случаев (хотя Dart Sass ведет в других).Обе реализации могут быть справедливо описаны как имеющие примерно одинаковую производительность в целом.

Dart Sass на узле все еще существенно медленнее, чем на Dart VM, и это относительное замедление становится более выраженным, так как необработанный код Dart становится быстрее.Решения для этого, такие как [встроенный протокол] [] или [поддержка WebAssembly] [], становятся все более и более важными.

Мой личный опыт использования пакета dart-sass npmjs вместо node-sass(то есть js обертка нативной библиотеки C) заключается в том, что dart-sass намного (для меня как минимум в 50 раз, потому что у меня много больших файлов тем) медленнее, чем node-sass.

...