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

news/2024/9/19 4:55:10 标签: vue.js, sass, 前端

        警告: 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.niftyadmin.cn/n/5665013.html

相关文章

排序篇(七大基于比较的排序算法)

目录 插入排序 直接插入排序 希尔排序(缩小增量排序) 选择排序 选择排序 堆排序 交换排序 冒泡排序 快速排序 1.挖坑法 2.Hoare版 3.前后指针 快速排序优化 三数取中法 选基准数 2.递归到小的子区间时 可以考虑使用插入排序 非递归快速排序 归并排序 归并排序…

大数据新视界 --大数据大厂之探索ES:大数据时代的高效搜索引擎实战攻略

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

828 华为云征文|华为 Flexus 云服务器部署 RustDesk Server,打造自己的远程桌面服务器

&#x1f4bb;在当今数字化时代&#xff0c;远程桌面服务器的需求日益增长。华为 Flexus 云服务器凭借其强大的性能和稳定性&#xff0c;为部署 RustDesk Server 提供了理想的平台。在 2024 年 9 月 14 日这个特别的日子里&#xff0c;我们将一起探索如何在华为 Flexus 云服务器…

OpenCV运动分析和目标跟踪(2)累积操作函数accumulateSquare()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将源图像的平方加到累积器图像中。 该函数将输入图像 src 或其选定区域提升到2的幂次方&#xff0c;然后加到累积器 dst 中&#xff1a; dst ( …

弹性负载均衡ELB 详解和设置方法

一、弹性负载均衡ELB 详解 1. 定义与概念 弹性负载均衡&#xff08;Elastic Load Balancing&#xff0c;简称ELB&#xff09;是一种将访问流量自动分发到多台云服务器的流量分发控制服务。它通过在多个后端服务器之间均衡分配请求&#xff0c;提高应用程序的可用性、可扩展性…

在 Linux 系统中目录架构说明

在 Linux 系统中&#xff0c;根目录&#xff08;/&#xff09;是整个文件系统的起点&#xff0c;其下有许多重要的目录&#xff0c;以下是对一些主要目录的说明&#xff1a; 一、/bin 存放着最常用的二进制可执行命令&#xff0c;例如 ls、cat、cp、mv 等。普通用户和超级用户…

24年蓝桥杯及攻防世界赛题-MISC-2

11 Railfence fliglifcpooaae_hgggrnee_o{cr} 随波逐流编码工具 分为5栏时&#xff0c;解密结果为:flag{railfence_cipher_gogogo} 12 Caesar rxms{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} mode1 #12: flag{you_have_learned_caesar_encryption} 随波逐流编码工具 13 base64…

计算机视觉——基于OpenCV和Python进行模板匹配

模板匹配是计算机视觉中的一项基本技术&#xff0c;它用于在较大的图像中寻找与给定模板图像最匹配的区域。在OpenCV中&#xff0c;这一过程可以通过matchTemplate函数轻松实现。本文将详细介绍模板匹配的原理、方法以及如何在Python中使用OpenCV进行模板匹配。 模板匹配原理 …