当前位置: 首页 > news >正文

node-sass@4.14.1 包含风险, 如何升级依赖至 dart-sass

文章目录

    • 需求
    • 我上网都查到了哪些信息
      • 在 github 看到了 node-sass 依赖的最新版本的列表:
      • 关于方案2的失败
      • 不同版本的 nodejs 和 node-sass依赖的**适配关系**
      • 从何得知替代方案——`dart-sass`
      • 如何安装 dart sass?

需求

在做一个基于Node、React的前端项目,通过npm管理依赖包。
通过依赖风险扫描,有一个依赖包node-sass@4.14.1有风险代码,推荐升级到8.0.0

下面是我的尝试:

  1. node-sass@4.14.1 --> node-sass@8.0.0 需要python2环境,可我在公司的电脑里并没有权限自己安装python。
  2. node-sass@4.14.1 --> node-sass@5.0.0 安装成功但运行时报错:node-sass 5和4不兼容
  3. 直接删除该依赖 npm uninstall node-sass 安装成功但运行时报错。毕竟项目里还是用到了sass相关的语法转换的。
  4. 最终方案:找一个替代品dart-sass。即:删除依赖node-sass,安装依赖sass (dart-sass 已更名为 sass)

我上网都查到了哪些信息

在 github 看到了 node-sass 依赖的最新版本的列表:

在这里插入图片描述

关于方案2的失败

有人在我之前遇到过相同的问题: https://blog.csdn.net/qq_42423991/article/details/109448034
他的解决方案是把版本还原。
可是我的任务就是把 node-sass@4.14.1 这个有风险的依赖版本给撤下去。
所以,这一条不能帮我解决最终的问题,不过可以堵死一条路的可能性。

在这里插入图片描述

不同版本的 nodejs 和 node-sass依赖的适配关系

依旧是在github看到。
这里的不适配也造成了前面提到的方案1 & 2 的失败:
我用了本地macOS机器和远程连接的windows环境安装测试,其中的 nodejs 版本是不同的,报错结果也有区别。
我的选择是看公司的部署系统里用什么版本的 node 和 npm ,然后在本地也用接近的版本去测试(尽量减小环境上的变量影响)。

在这里插入图片描述

从何得知替代方案——dart-sass

github 项目 homepage:
在这里插入图片描述
警告:
Libsass 和 node-sass 已被弃用
尽管工作人员会继续无限期地接收到维护的release,但不会有时间安排来为新的css和sass细节而新增功能或解决兼容性问题。
至于那些依旧用到了本依赖的项目,你们要做的事就是:迁移到 dart sass

如何安装 dart sass?

先把 node-sass 卸载了 npm uninstall node-sass

然后再安装新的。
直接说结论: 用npm install sass 而不是 npm install dart-sass

从 node-sass 转到 dart-sass ,这时后来者替代了前者。可以看到两者的名字也是相同的规格。
之后:往后对于sass语法的支持,就由我dart-sass这个后来者一家撑着。那我直接改名(转正),就叫sass,名称更短,听起来也更官方(提供对sass语法支持的插件,插件名就叫sass,这多官方啊)。

在这里插入图片描述
另外,从dart-sass官网也可以看到安装命令里要安装的包名是sass而非dart-sass

在这里插入图片描述

相关文章:

node-sass@4.14.1 包含风险, 如何升级依赖至 dart-sass

文章目录需求我上网都查到了哪些信息在 github 看到了 node-sass 依赖的最新版本的列表:关于方案2的失败不同版本的 nodejs 和 node-sass依赖的**适配关系**从何得知替代方案——dart-sass如何安装 dart sass?需求 在做一个基于Node、React的前端项目&a…...

DataWhale 大数据处理技术组队学习task2

三、Hadoop分布式文件系统 1. 产生背景 数据量越来越大,一台独立的计算机已经无法存储所有的数据---->将大规模的数据存储到成百上千的计算机中------为了解决数据管理以及维护极其繁琐与低效------>分布式文件系统 分布式文件系统是管理网络中跨多台计算机…...

一文读懂select、poll、epoll的用法

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,…...

《C陷阱与缺陷》----词法“陷阱”

导言: 由于一个程序错误可以从不同层面采用不同方式进行考察,而根据程序错误与考察程序的方式之间的相关性,可以将程序错误进行划分为各种陷阱与缺陷: ①.词法“陷阱” ②.语法“陷阱” ③.语义“陷阱” ④.连接问题 ⑤.库函数问…...

千锋教育+计算机四级网络-计算机网络学习-04

UDP概述 UDP协议 面向无连接的用户数据报协议,在传输数据前不需要先建立连接;目地主机的运输层收到UDP报文后,不需要给出任何确认 UDP特点 相比TCP速度稍快些简单的请求/应答应用程序可以使用UDP对于海量数据传输不应该使用UDP广播和多播应用…...

蓝桥杯算法训练合集十四 1.P08052.P07053.同余方程4.P08015.ascii应用

目录 1.P0805 2.P0705 3.同余方程 4.P0801 5.ascii应用 1.P0805 问题描述 当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数&…...

判断字符串中的字符的类型isdecimal();isalpha();isdigit();isalnum()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 判断字符串中的字符的类型 isdecimal();isalpha();isdigit();isalnum() [太阳]选择题 对于代码中isdecimal()和isalnum()输出的结果是? s "ABc123&…...

VSCode远程调试Linux代码,python解释器配置

安装插件并配置 安装后找到插件图标,点击 点击SSH上的 号 在弹出框中输入命令:ssh usernameip -p port username: 远程服务器的用户名 ip: 远程ip port:端口号,没有可以不用 输入完毕后点击enter 选择ssh配置文件保存…...

03:入门篇 - CTK Plugin Framework 基本原理

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 CTK Plugin Framework 技术是面向 C++ 的动态模型系统。该系统允许插件之间的松散耦合,并且提供了设计良好的方式来进行功能和数据的交互。此外,它没有预先对插件施加限制,这样就可以很容易地将插件的相关…...

面试攻略,Java 基础面试 100 问(九)

数组有没有 length()方法?String 有没有 length()方法? 数组没有 length()方法,有 length 的属性。String 有 length()方法。JavaScript 中,获得字符串的长度是通过 length 属性得到的,这一点容易和 Java混淆。 在 Java 中&…...

JavaScript 代码不嵌套主义

文章目录前言一、何为嵌套代码二、避免嵌套1.提炼抽取2.反转排列总结前言 看过不少过度嵌套的代码, 我真正意识到问题的严重性是刚入职那会, 我在一个老项目里看到了40个连续的else if, 套了6层的if, for和forEach, 因为我们并没有做什么限制代码嵌套的提前约定. 呃, 那之后认…...

使用默认参数的4大要点

概述 默认参数是C中新增的特性。在C中,可以为函数的参数指定默认值。调用函数时,如果没有指定实参,则自动使用默认参数。默认参数的基本语法这里就不作介绍了,下面重点介绍使用默认参数的一些知识要点。 基本规则 1、当函数中某个…...

Linux文件系统中的硬链接及常见面试题

如果能对inode的概念有所了解,对理解本文会有所帮助。如果对inode的概念不太清楚也没有关系,我们会捎带介绍一下。在文件系统的实现层面,我们可以认为包含两个组件:一个是包含数据块的池子,池子中的数据块是等大小的&a…...

opencv-StereoBM算法

原理解释目前立体匹配算法是计算机视觉中的一个难点和热点,算法很多,但是一般的步骤是:A、匹配代价计算匹配代价计算是整个立体匹配算法的基础,实际是对不同视差下进行灰度相似性测量。常见的方法有灰度差的平方SD(squ…...

图像分类竞赛进阶技能:OpenAI-CLIP使用范例

OpenAI-CLIP 官方介绍 尽管深度学习已经彻底改变了计算机视觉,但目前的方法存在几个主要问题:典型的视觉数据集是劳动密集型的,创建成本高,同时只教授一组狭窄的视觉概念;标准视觉模型擅长于一项任务且仅擅长于一项任务,并且需要大…...

Metasploit框架基础(一)

文章目录前言一、基础认知二、批量POC/EXP的构想三、poc检测框架的简单实现四、xray五、Meatsploit框架参考前言 Metasploit 一款渗透测试框架漏洞利用的集合与构建和定制满足你的需求的基础漏洞利用和验证的工具 这几个说法都是百度或者官方文档中出现的手法,说…...

pytorch零基础实现语义分割项目(二)——标签转换与数据加载

数据转换与加载项目列表前言标签转换RGB标签到类别标签映射RGB标签转换成类别标签数据数据加载随机裁剪数据加载项目列表 语义分割项目(一)——数据概况及预处理 语义分割项目(二)——标签转换与数据加载 语义分割项目&#x…...

python(8.5)--列表习题

目录 一、求输出结果题 二、计算列表元素个数 三、查找是否存在某元素 四、删除某元素 五、如何在列表中插入元素 六、如何从列表中删除重复的元素 七、 如何将列表中的元素按照从小到大的顺序排序 八、从列表中删除重复的元素 九、大到小的顺序排序 一、求输出结…...

rt-thread pwm 多通道

一通道pwm参考 https://blog.csdn.net/yangshengwei230612/article/details/128738351?spm1001.2014.3001.5501 以下主要是多通道与一通道的区别 芯片 stm32f407rgt6 1、配置PWM设备驱动相关宏定义 添加PWM宏定义 #define BSP_USING_PWM8 #define BSP_USING_PWM8_CH1 #d…...

C语言练习 | 初学者经典练习汇总

目录 1、下面代码输出多少,为什么? 2、你要好好学习么? 3、一直写代码, 4、两个数求最大值 5、输入1-5输出工作日,输入6-7输出休息日,其他输入错误 6、写一个输入密码的代码 7、怎么样当输入数字时候…...

华为OD机试 - 自动曝光(Python) | 机试题算法思路 【2023】

最近更新的博客 华为OD机试 - 卡片组成的最大数字(Python) | 机试题算法思路 华为OD机试 - 网上商城优惠活动(一)(Python) | 机试题算法思路 华为OD机试 - 统计匹配的二元组个数(Python) | 机试题算法思路 华为OD机试 - 找到它(Python) | 机试题算法思路 华为OD机试…...

「6」线性代数(期末复习)

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 第五章 相似矩阵及二次型 &2)方阵的特征值与特征向量 &3&#xff…...

1.1 硬件与micropython固件烧录及自编译固件

1.ESP32硬件和固件 淘宝搜ESP32模块,20-50元都有,自带usb口,即插即用. 固件下载地址:MicroPython - Python for microcontrollers 2.烧录方法 为简化入门难度,建议此处先使用带GUI的开发工具THonny,记得不是给你理发的tony老师. 烧录的入口是: 后期通过脚本一次型生成和烧…...

【MySQL进阶】视图 存储过程 触发器

😊😊作者简介😊😊 : 大家好,我是南瓜籽,一个在校大二学生,我将会持续分享Java相关知识。 🎉🎉个人主页🎉🎉 : 南瓜籽的主页…...

[Linux篇] Linux常见命令和权限

文章目录使用XShell登录Linux1.Linux常用基本命令:1.1 ls(列出当前的目录下都有哪些文件和目录)1.2 cd (change directory 切换目录)1.3 pwd(查看当前目录的绝对路径)1.4 touch(创建文件)1.5 ca…...

29岁从事功能测试被辞,面试2个月都找不到工作吗?

最近一个28岁老同学联系我,因为被公司辞退,找我倾诉,于是写下此文。 他是14年二本毕业,在我的印象里人特别懒,不爱学习,专业不好,毕业前因为都没找到合适工作,直接去创业了&#xf…...

【C#个人错题笔记1】

观前提醒 记录一些我不会或者少见的内容,不一定适合所有人 字符串拼接 int a3,b8; Console.WriteLine(ab);//11 Console.WriteLine("ab");//ab Console.WriteLine(a""b);//38 Console.WriteLine("ab"ab);//ab38 Console.WriteLine…...

基于lambda的mongodb查询插件

需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久,没有发现有类似功能的插件。于是自己手写了一个,借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上,实现了查询的统一封装。技…...

基于微信小程序的微信社团小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...

GEE学习笔记 七十三:【GEE之Python版教程七】静态展示影像和动态展示影像

我们使用GEE在线编辑可以直接通过在线的网页可以加载展示我们计算的结果,而python版的GEE要展示我们的计算结果可能就比较麻烦。如果有同学看过GEE的python版API中可以找到一个类ee.mapclient,这个类的介绍是它是GEE官方通过Tk写的一个加载展示地图的类。…...

网站创意设计方案/b站视频推广怎么买

我正在努力以自己的方式打印JTables。这是我在打印时想要获得的:Page 1 Page 2 Page 3| 1 2 3 | | 4 5 6 | | 7 8 9 ||1 | |1 | |1 ||2 | |2 | |2 ||3 | |3 | |3 |Page 4 Page 5 Page 6| 1 2 3 | | 4 5 6 | | 7 8 9 ||4 | |4 | |4 ||5 | |5 | |5 ||6 | |6 | |6 |如您…...

wordpress主题模板/乔拓云智能建站系统

自执行函数的四种写法:   1:(function (x){dosomething...})(x);  2: (function(x){dosomething...}(x));  3:!function (x) {sosomething...}(x);  4:void function(x){dosomething...}(x);这些写法都是可以的,不过针对底…...

武乡网站建设/营销型网站

用途 通过除去绑定程序和符号调试程序使用的信息,降低扩展公共对象文件格式(XCOFF)的对象文件的大小。 语法 strip [ -V ] [ -r [ -l ] | -x [ -l ] | -t | -H | -e | -E ] [ -X {32 |64 |32_64 }] [ -- ] File ... 描…...

成都到西安距离/seo排名工具有哪些

第三周C小结 其实一些经验或者技巧,都是在作业的过程中搜索得到或者自己领悟出来的。 首先是数值变量与字符变量占用的字节数不同,因此可以用sizeof()函数来判断变量所占字节数判断其类型。 然后是空格的ASCII码为32,可以以此判断一串字符中是…...

向祖国建设者致敬网站/新闻式软文范例

自动化单元测试的意义出处 作者:许式伟 写于:2005年3月 背景:WPS Office 2005 (开发代号: V6) 原文:why-unit-test.pdf (pdf格式) 目录 自动化单元测试的重要特征单元测试的项目意义单元测试对设计的意义cppunit for v6将测试案例…...

建行网站注册用户名怎么填/有什么可以做推广的软件

原文http://qt-project.org/doc/qt-4.8/qml-tutorial.html 运行效果步骤 1、创建QML文件(在QtCreator中根据向导创建或者直接用文本文件另存为) 2、源码(..\Examples\4.7\declarative\tutorials\helloworld) import QtQuick 1.0 …...