Scss--将node-sass切换为sass(原dart-sass)

原文网址:Scss--将node-sass切换为sass(原dart-sass)_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍node-sass与sass(原dart-sass),以及如何将node-sass切换为sass(原dart-sass)。

        sass依赖原来是dart-sass,是为了与node-sass区分的。后来官网将node-sass废弃了,就一同将dart-sass改名为了sass。

相关图片

npm图片

node-sass与sass的对比

node-sasssass
与Node.js的兼容性不兼容高版本Node.js兼容高版本Node.js
性能稍低于node-sass
官方推荐度不推荐(已废弃)推荐
编译方法

用 node(调用 c++ 编写的 libsass)编译 sass。

自动实时编译。

用 drat VM 来编译 sass。

保存后生效

为什么要从node-sass切换到sass

  1. sass是官方推荐的
    1. node-sass已被官方废弃
  2. sass对Node.js的兼容性更好
    1. Sass兼容高版本的Node.js,而node-sass不兼容高版本Node.js
  3. vue-cli已默认使用sass
    1. 详见:https://github.com/vuejs/vue-cli/pull/3321
  4. 很多前端框架用的是sass
    1. 例如:vue-element-admin。见:Node Sass to Dart Sass | vue-element-admin

从node-sass切换到sass的方法

1.修改依赖

卸载node-sass

npm uninstall node-sass

安装sass

npm install sass -S -D

2.修改代码

说明

对于深度选择器 /deep/和::v-deep:

  • sass 只支持 ::v-deep
  • node-sass 支持 /deep/和::v-deep

所以,要将原来的/deep/改为::v-deep。

示例

node-sass写法(老写法)

.a {
  /deep/ {
    .b {
      color: red;
    }
  }
}

sass写法(新写法)

.a {
  ::v-deep {
    .b {
      color: red;
    }
  }
}

::v-deep的简写

::v-deep的简写是下边这样的:

:deep(selector)

例如:

:deep(.foo) {
  position: relative;
}

备注

        不管你是否使用dart-sass,我都建议使用::v-deep的写法,它不仅兼容了 css 的>>>写法,还兼容了 sass /deep/的写法。而且它还是 vue 3.0 RFC 中指定的写法。

        而且 /deep/ 写法本身就被 Chrome 所废弃,你现在经常能在控制台中发现 Chrome 提示你不要使用/deep/的警告。

版本问题

        scss(dart-sass)的兼容性很强,一般不会出问题。不过为保险起见,本处记下一些测成功的版本,供参考。

node.jswebpacksasssass-loader
14.15.34.46.01.26.28.0.2

### 回答1: Dart-sassnode-sass都是用于编译Sass代码的工具。Dart-sass是由Dart语言编写的,而node-sass是由Node.js编写的。它们都可以将Sass代码编译成CSS代码,并提供了许多功能,如变量、嵌套、混合等。Dart-sass相对于node-sass来说,速度更快,但是需要安装Dart环境。而node-sass则可以直接在Node.js环境下使用。 ### 回答2: Dart-SassNode-Sass是两种常用的Sass编译器。 Dart-Sass是一款基于Dart语言开发的Sass编译器,由Sass核心开发者Hampton Catlin和其他贡献者共同开发和维护。Dart-Sass是官方推荐的Sass编译器,支持最新的Sass语法和功能,如@forward、CSS模块以及其他的一些更新。 Node-Sass是一款基于Node.js平台开发的Sass编译器,由Hugo Giraudel和Andrew Nesbitt共同开发和维护。Node-Sass是最早出现的Sass编译器之一,得到了广泛的使用和认可。它支持较早版本的Sass语法和功能,并且能够提供更好的性能让开发者可以更快地编译Sass文件。 两款编译器的主要区别在于他们的运行平台,Dart-Sass运行于Dart平台上,而Node-Sass运行于Node.js平台上。此外,Dart-Sass更加符合最新的Sass语法规范,更能提供更好的性能和处理能力,因此已被官方推荐为首选的Sass编译器。而Node-Sass则更注重与Node.js的兼容性和能够兼容更早的Sass语法版本。 总的来说,选择哪一款Sass编译器应该根据项目需要和开发者的喜好而定。如果注重使用最新的Sass语法和功能,以及更好的性能,可以选择Dart-Sass。而如果需要通用性更强的编译器,并且更能兼容早期的Sass语法版本,可以选择Node-Sass。 ### 回答3: Dart-sassnode-sass都是Sass编译器,它们可以将Sass或者Scss代码编译成CSS代码。Sass是一种CSS预处理器,它使用类似于编程语言的语法来定义CSS样式,让CSS的编写更加快捷、直观。而Dart-sassnode-sass则是Sass语言的解析器,在编译Sass代码时可以实现一些高级功能,如使用变量、函数、嵌套等。 Dart-sass使用Dart语言进行编写,其最明显的特点是速度快,比node-sass快得多,且支持最新的Sass语法特性。另外,Dart-sass的错误信息也更加明显和容易理解。但是,Dart-sass的代码数量比较多,对于初学者来说可能会有一点陌生。 node-sass是一款基于Node.js的Sass编译器,它是由C++实现的,性能也非常好。在安装和使用上比较简单,不需要学习新的语言的语法。但是,相比Dart-sassnode-sass对于Sass 3.5语法的支持不太好,而且在错误提示方面可能不如Dart-sass。 对于哪种Sass编译器更好,在很大程度上取决于个人情况和需求。如果对于速度要求比较高,或者需要使用新的Sass语法特性,那么Dart-sass比较适合。如果希望使用方便、错误提示较为清晰,且不需要使用最新的Sass语法特性,那么node-sass可能比较适合。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT利刃出鞘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值