Published on

使用 dart-sass 替代 node-sass

Authors

解决方案:

yarn add sass --dev

什么是 node-sass

什么是 sass

Sass(Syntactically Awesome Stylesheets)是一种 CSS 预处理器,它扩展了普通的 CSS 语法,为开发者提供了更多的功能和便利,使得样式表的编写更加高效和易于维护。

具体来说,Sass 提供了以下主要特性:

  • 变量(Variables):允许定义可重复使用的值,如颜色、字体等,从而提高样式表的可维护性。

  • 嵌套规则(Nesting):允许在样式规则中嵌套选择器,使得 CSS 结构更加清晰和层次化。

  • 混合(Mixins):类似于函数,允许定义可重复使用的样式块,可以接受参数,可以用来实现样式的复用和模块化。

  • 继承(Inheritance):允许一个选择器继承另一个选择器的样式,避免了重复定义相似的样式规则。

  • Partials 和导入(Partials and Imports):允许将样式分割成多个文件,并通过导入来组织和管理样式。

  • 运算(Operations):支持在样式表中进行数学运算,如加法、减法等,可以方便地处理尺寸、颜色等数值。

Sass 可以通过两种语法来使用:较早的缩进语法(Indented Syntax)和较新的 SCSS(Sassy CSS)语法,它们都可以通过 Sass 编译器转换成普通的 CSS 文件,以供浏览器使用。

总的来说,Sass 提供了许多工具和特性,帮助开发者更加高效地编写和管理样式表,是前端开发中常用的工具之一。

node-sass

Node-sass 模块允许开发者在 Node.js 环境下使用 Sass,通过命令行或者 JavaScript API 来将 Sass 文件编译成 CSS。它将 Sass 的语法转换为浏览器可以理解的纯 CSS,这样可以在开发过程中使用 Sass 的强大功能,最终生成网页所需的标准 CSS 文件。

总结来说,Node-sass 是一个在 Node.js 环境中使用 Sass 的工具,用于将 Sass 文件转换为浏览器可以解析的 CSS 文件,是前端开发中常用的工具之一。

在过去的版本中,Node-sass 依赖于 libsass 和 Python。具体来说:

libsass:是一个用 C/C++ 编写的库,用于将 Sass 编译成 CSS。Node-sass 利用 libsass 来执行 Sass 文件的编译工作,因此在安装 Node-sass 时,通常需要安装 libsass 的依赖库。

Python:在较早的 Node-sass 版本中,安装过程中可能会涉及到 Python。这是因为在编译 libsass 时,有些系统需要 Python 来执行编译脚本或处理相关依赖。而且 node-sass 依赖 python 2.x 版本中,安装过程中可能会涉及到

sass(原 dart-sass)

Dart Sass 是 Sass 的官方实现,由 Sass 核心团队开发和维护。它是用 Dart 编程语言实现的 Sass 编译器,与 Node-sass 和 Ruby Sass 不同,它不依赖于 libsass 库或 Ruby 环境。

Dart Sass 的主要特点包括:

  • 高性能:Dart Sass 被设计为高性能的编译器,能够快速处理大型的 Sass 文件和复杂的样式表。

  • 功能完整:支持 Sass 的所有核心功能,如变量、嵌套、混合、继承等。同时,它也兼容并支持最新的 Sass 规范。

  • 命令行工具:Dart Sass 提供了一个命令行工具,可以方便地将 Sass 文件编译成普通的 CSS 文件。

  • 跨平台支持:由于 Dart 语言的特性,Dart Sass 可以在多个操作系统上运行,包括 Windows、MacOS 和 Linux。

  • 持续更新:作为官方实现,Dart Sass 经常会发布更新版本,以确保性能优化、安全性和兼容性。