vue node node-sass sass-loader 版本 对应 与 兼容

news/2024/11/14 14:48:57/

        警告: LibSass 和 Node Sass 已弃用。虽然它们将继续无限期地接收维护版本,但没有计划添加其他功能或与任何新的 CSS 或 Sass 功能兼容。仍在使用它的项目应该转移到 Dart Sass。 

sass
        Sass是一种预处理器脚本语言,可以解释或编译成层叠样式表(CSS)。

        Sass包含两种语法:较旧的语法使用缩进将代码块和换行符分隔为单独的规则;较新的语法SCSS使用像CSS这样的块格式。它使用大括号来表示代码块和分号来分隔块中的行。

        缩进语法和SCSS文件传统上分别给出扩展名.sass和.scss

node-sass
        Node-sass是一个库,它将Node.js绑定到LibSass(流行样式表预处理器Sass的C版本)。它允许用户以令人难以置信的速度将.scss文件本地编译为css,并通过连接中间件自动编译。

sass-loader
        sass-loader 是一个webpack 的loader,用于处理项目中的Sass/SCSS 文件。 它的作用是将Sass/SCSS 代码转换成CSS 代码,并将其注入到应用程序中。

兼容问题
        在安装node-sass的过程中,经常会出现兼容问题,导致安装失败,通常是由于node版本、node-sass版本、sass-loader版本不对应导致。
下面是一些推荐的版本对应规则:

首先是node和node-sass的版本对应规则:node-sass - npm 

NodeJSSupported node-sass versionNode Module
Node 209.0+115
Node 198.0+111
Node 188.0+108
Node 177.0+, <8.0102
Node 166.0+93
Node 155.0+, <7.088
Node 144.14+, <9.083
Node 134.13+, <5.079
Node 124.12+, <8.072
Node 114.10+, <5.067
Node 104.9+, <6.064
Node 84.5.3+, <5.057
Node <8<5.0<57

然后是node-sasssass-loader的对应规则:

sass-loader 4.1.1,node-sass 4.3.0
sass-loader 7.0.3,node-sass 4.7.2
sass-loader 7.3.1,node-sass 4.7.2
sass-loader 7.3.1,node-sass 4.14.1
sass-loader 10.0.1,node-sass 6.0.1

        上面是部分对应规则,首先根据node版本确定好node-sass的版本,然后再选择sass-loader的版本。

        同时上面只是一部分sass-loader的版本对应,因为没有提供官方的对应规则,所以上面的版本还是不对的话,确定好node和node-sass版本之后,可以一个一个尝试sass-loader的版本,所有版本:sass-loader - npm

其它说明

        出现兼容问题的主要原因在于,早期开发人员使用比如node12版本,安装node-sass4+版本和sass-loader4+,可以正常运行,但是后期开发人员使用了更新的node,比如16,而16不支持低版本node-sass

        同时即便切换到低版本node12中可以正常运行,但项目中使用了一些node12以上的代码语法,比如node14才支持的可选链语法,然后其它开发人员拉代码之后,就要么高版本node无法拉取node-sass包,要么切换低版本无法运行一些高版本node才支持的语法。
推荐还是使用高版本的node,然后升级node-sasssass-loader版本。

其它方法

        直接放弃node-sass,使用dart-sass无缝替换。

node-sass与dart-sass区别:

node-sass 是用 node (调用 cpp 编写的 libsass) 来编译 sass

dart-sass 是用 drat VM 来编译 sass

node-sass 是实时自动编译的,dart-sass 需要保存后才会生效。

推荐 dart-sass 性能更好(也是 sass 官方使用的),除了上面的版本对应不上,很多时候node-

sass还因为国情问题经常装不上。

下面是切换方法,使用高版本node,然后根据下面操作:

1、卸载 node-sass

        npm uninstall node-sass

2、安装 dart sass

        npm install sass sass-loader -D

3、替换

        将项目中原有的 /deep/ 替换为::v-deep,也就这一步麻烦一些,具体需要个人评估。


http://www.ppmy.cn/news/1528181.html

相关文章

探索Python的Excel世界:openpyxl的魔法之旅

文章目录 探索Python的Excel世界&#xff1a;openpyxl的魔法之旅背景&#xff1a;为什么选择openpyxl&#xff1f;什么是openpyxl&#xff1f;如何安装openpyxl&#xff1f;简单的库函数使用方法场景应用&#xff1a;openpyxl在实际工作中的应用常见bug及解决方案总结 探索Pyth…

华为SMU02B1智能通信电源监控单元模块简介

华为SMU02B1是一款智能通信电源监控单元模块&#xff0c;专为5G嵌入式机框设计&#xff0c;它在通信电源管理领域扮演着重要角色。以下是对该产品的详细介绍&#xff1a; 一、产品概述 主要功能&#xff1a;华为SMU02B1能够监控和管理通信电源系统&#xff0c;提供站点监控功能…

算法练习题27——疫情下的电影院(模拟)

其实思路还好 就是输入有点难搞 Java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String input scanner.nextLine();// 去掉输入字符串的方括号if (input.…

oracle 如何查死锁

在Oracle中查看死锁通常涉及查询数据字典视图和动态性能视图。以下是一个基本的查询示例&#xff0c;用于检测和显示最近的死锁&#xff1a; SELECT dd.inst_id, dd.name, o.object_id, o.object_type, s.sid, s.serial#, s.username, p.spid, s.program,d.xidusn,d.xidslot,d…

WGAN算法

Wasserstein GAN (WGAN) 是一种改进的生成对抗网络&#xff08;GAN&#xff09;&#xff0c;由 Arjovsky 等人在 2017 年提出&#xff0c;用于解决原始 GAN 中的训练不稳定性和模式崩溃&#xff08;Mode Collapse&#xff09;问题。WGAN 的核心思想是使用Wasserstein 距离&…

【C#生态园】深入比较:六款C#数据流处理库对比解析

解密C#数据流处理利器&#xff1a;全面评析六大库 前言 随着信息技术的不断发展&#xff0c;数据流处理已经成为许多软件系统中必不可少的一部分。针对C#和.NET开发者来说&#xff0c;选择合适的数据流处理库可以极大地提高开发效率和系统性能。本文将介绍几个流行的C#数据流…

sqlgun靶场漏洞挖掘

进入首页首先看到一个搜索框&#xff0c;那么我们试一下xss 用script弹了个一 接下来我们尝试一下sql注入 这里我们使用联合查询查到了他的数据库名&#xff0c;那么这里也就存在SQL注入了 这里存在SQL注入那么我们就尝试一下是否可以注入木马来getshell 首先我们扫描目录&…

谷神后端list转map

list转map /*** list2map* list转map&#xff1a;支持全量映射、单字段映射。* * param $list:list:列表。* param $key:string:键。* param $field:string:值字段域。** return map**/ #function list2map($list, $key, $field)#if ($vs.util.isList($list) and $vs.util.is…