node-sass@4.14.1报错的最终解决方案分享

输入npm i全安装文件所需的依赖的时候,博主是使用sass去书写的,使用的是node-sass@4.14.1和sass-loader@7.3.1的版本的,安装的时候老是出现错误,

node-sass@4.14.1版本不再被支持的原因

node-sass 是一个基于 LibSass 的 Node.js 绑定,用于将 SCSS/Sass 编译成 CSS。然而,LibSass 项目已经停止维护,这意味着它不再接受新的功能更新或安全修复。由于 node-sass 依赖于 LibSass,随着 LibSass 的停止维护,node-sass 也逐渐失去了支持。特别是 node-sass@4.14.1 这个版本,由于不再接收更新,可能会存在与最新 Node.js 版本的兼容性问题,甚至可能包含未修复的安全漏洞。

如果是新项目,就升级替换 node-sass,一劳永逸

替代 node-sass 的方案
一个广泛接受的替代方案是 dart-sass(也称为 sass)。dart-sass 是 Sass 的官方实现,由 Dart 语言编写,并且完全兼容 Sass 语法。与 node-sass 相比,dart-sass 更稳定、更快速,并且持续得到官方的支持和维护。

如何迁移到 dart-sass 的步骤
‌卸载 node-sass‌:

bash
Copy Code
npm uninstall node-sass
‌安装 sass‌:

bash
Copy Code
npm install sass
‌更新构建脚本‌:

如果你在使用构建工具(如 Webpack、Gulp 等),需要确保它们使用 sass 而不是 node-sass。通常,这只需要更改配置文件中的加载器或插件即可。

例如,在 Webpack 中,你可能需要将 sass-loader 的配置从:

javascript
Copy Code
{
    test: /\.scss$/,
    use: [
        'style-loader',
        'css-loader',
        'sass-loader'
    ]
}
更改为:

javascript
Copy Code
{
    test: /\.scss$/,
    use: [
        'style-loader',
        'css-loader',
        'sass'  // 直接使用 sass 而不是 sass-loader,后者现在默认使用 dart-sass
    ]
}
注意迁移过程中可能出现的兼容性问题
尽管 dart-sass 尽可能保持与 Sass 语法的兼容性,但在某些边缘情况下,特别是在使用特定于 node-sass 的特性时,可能会出现差异。因此,在迁移后,建议仔细检查编译后的 CSS 是否符合预期,并特别注意任何样式或布局上的变化。

建议在迁移后进行充分的测试
迁移后,进行全面的测试是非常重要的。这包括单元测试、集成测试以及用户接受测试(UAT),以确保新功能或更改没有引入任何问题。特别是,应关注那些依赖于复杂样式逻辑或特定于 node-sass 的行为的组件和页面。

通过遵循上述步骤和建议,你可以有效地从 node-sass 迁移到 dart-sass,同时确保项目的稳定性和安全性。

**如果是旧的项目,就降低nodejs版本,**下篇文章将会具体讲解

最后的方法我只能降级node去安装,终于,在降级后就可以安装了,现在的node最新是v16,要支配node-sass@4.14.1可以把node降级到v12,至于怎么降级,可以使用nvm去降级,这个很方便去改变node的版本。

相关推荐
祈澈菇凉1 小时前
Webpack的基本功能有哪些
前端·javascript·vue.js
小纯洁w1 小时前
Webpack 的 require.context 和 Vite 的 import.meta.glob 的详细介绍和使用
前端·webpack·node.js
想睡好2 小时前
css文本属性
前端·css
qianmoQ2 小时前
第三章:组件开发实战 - 第五节 - Tailwind CSS 响应式导航栏实现
前端·css
zhoupenghui1682 小时前
golang时间相关函数总结
服务器·前端·golang·time
White graces2 小时前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
庸俗今天不摸鱼2 小时前
Canvas进阶-4、边界检测(流光,鼠标拖尾)
开发语言·前端·javascript·计算机外设
bubusa~>_<3 小时前
解决npm install 出现error,比如:ERR_SSL_CIPHER_OPERATION_FAILED
前端·npm·node.js
流烟默3 小时前
vue和微信小程序处理markdown格式数据
前端·vue.js·微信小程序
梨落秋溪、3 小时前
输入框元素覆盖冲突
java·服务器·前端