node-sass 安装各种坑,一招解决!

这篇具有很好参考价值的文章主要介绍了node-sass 安装各种坑,一招解决!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决方法

node-sass 是 ruby 时代遗留下来的“宝贝”,依赖各种远古编译环境,如 Python2.7、G++等,而现在我们再去装会碰到各种报错。

实际上,我们用 sass 替代 node-sass 即可。dart-sass 兼容 node-sass 的 API,而且安装过程无需下载二进制文件,这样大家就不需要安装 node-sass 了。

package.json
{
    "sass": "^1.68.0",
}

编译不会报错,但是会有一些过时写法的警告。

Deprecation Warning: $weight: Passing a number without unit % (0) is deprecated.

To preserve current behavior: $weight * 1%

More info: https://sass-lang.com/d/function-units

   ╷
42 │     color: mix($--tag-success-color, $--color-white, $fontColorWeight);

node-sass 安装过程分析

首先了解一下 node-sass 安装的过程:

  1. npm 拉下 node-sass包;

  2. 根据node版本和node-sass版本拉取对应的binding.node编译器,原因是sass的编译语言比较特殊,需要下载对应版本的编译器才能编译;(node scripts/install.js 阶段)

  3. 如果能拉下binding.node就【安装成功】;

    如果找不到对应的binding.node包,即失败,然后就会尝试本地编译。

失败原因分析

一、网络不稳定

首先要知道的是,安装 node-sass 时在 node scripts/install.js 这个阶段会从 github.com 上下载一个 .node 文件,大部分安装不成功的原因都源自这里,因为 GitHub Releases 里的文件都托管在 s3.amazonaws.com 上面,而这个网址在国内总是"网络不稳定",所以我们需要通过第三方服务器下载这个文件。

二、本地编译没有Python环境

三、node-sass版本与当前Node版本不匹配

因node版本与node-sass版本不匹配导致 binding.node 拉不下来,无法编译。

node-sass 版本的兼容性不好,老项目中依赖的 node-sass 很可能已经不兼容新的 node 版本,对应版本兼容参考如下官方仓库https://link.juejin.cn?target=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fnode-sass

NodeJS Supported node-sass version Node Module
Node 15 5.0+ 88
Node 14 4.14+ 83
Node 13 4.13+, <5.0 79
Node 12 4.12+ 72
Node 11 4.10+, <5.0 67
Node 10 4.9+ 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

比如我在 Node 8 的环境下安装 node-sass@3.13.1, 安装的时候就会出现找不到对应的 binding.node 而报错,如下:

$ npm install --save-dev node-sass
> node-sass@3.13.1 install D:\WorkSpace\mumble-next-ng\node_modules\gulp-sass\node_modules\node-sass
> node scripts/install.js

Downloading binary from http://npm.taobao.org/mirrors/node-sass/v3.13.1/win32-x64-57_binding.node
Cannot download "http://npm.taobao.org/mirrors/node-sass/v3.13.1/win32-x64-57_binding.node":

HTTP error 404 OK

四、没有清理缓存

每次装包失败报错后记得都要 npm uninstall xxx 清除装包错误留下的缓存。

比如 npm i -D node-sass 报错了,就要执行一遍 npm uninstall node-sass,然后再重新安装。文章来源地址https://www.toymoban.com/news/detail-766834.html

到了这里,关于node-sass 安装各种坑,一招解决!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue node_modules\node-sass: Command failed. 安装失败,如何解决,使用 sass 替换

    package.json vue 项目中,安装依赖的时候出现错误,如下: package.json 中有个 node-sass 的包,在安装并编译这个的时候出现问题 node-sass 的主要功能是将 sass/scss - css ,跟 sass 的作用是一样的, sass 是 dart 语言写的, 直接用 sass 替换掉 node-sass 即可 在使用 vue create appName 创建 vue 项

    2024年02月03日
    浏览(33)
  • 关于macOS系统M1芯片安装node-sass报错的解决方案

    最近更换macOS系统,pull项目后安装依赖时报错: 参考 M1芯片 安装node-sass报错 这篇文章后 ,得知原因是: node与node-sass版本不匹配 。代码的node-sass是v4.14.1版本(需要node15以下的版本),而我的node 是 v14(但M1芯片仅兼容node v15.3.0 以上,因为低版本的 node 并不是基于 arm64 架构

    2023年04月26日
    浏览(38)
  • 项目依赖安装node-sass@^4.14.1 run “node scripts/install.js“报错问题解决

    很久没运行的项目突然依赖下载报错,让我很头疼,之前都是运行正常的,于是就是开找解决办法。 依赖下载遇到的报错!!! scripts.install node-sass@^4.14.1 run “node scripts/install.js”: 大概意思就是这个地址已经不能下载了,需要你下载到本地并且做一个代理: 第一步: nod

    2024年02月20日
    浏览(53)
  • 执行npm install时老是安装不成功node-sass的原因和解决方案

    相信你安装前端项目所需要的依赖包(npm install 或 yarn install)时,有可能会出现如下报错: 那么到底是什么原因导致这个问题出现呢? 最多的原因还是 node的版本 和node-sass的版本不一致,比如node版本是 16+的,而你的版本还是旧的 “node-sass”: “^4.14.1”。因为node并不会兼容

    2024年02月06日
    浏览(43)
  • 一篇文章教你解决node-sass 4.12.0 安装失败,一劳永逸

    已知: 使用mac电脑 使用的node版本是v14.20.0 问题:在安装node-sass 4.12.0的时候报错如下  看到这一堆错误,千万不要立马复制粘贴到浏览器去搜,感觉像无头苍蝇乱撞,好歹稍微看一下什么意思。 显而易见是有一个文档404not found,那么我们具体看一下  https://github.com/sass/node

    2024年02月01日
    浏览(31)
  • 快速解决 npm 安装 node-sass 速度慢/错误的问题(nexus私服问题见上一篇博客)

    这通常是因为 node-sass 包中包含有本地二进制文件( _binding.node ),而在某些情况下,下载过程可能会失败。 以下是一些可能的解决方法: 1. 使用淘宝镜像 你可以尝试使用淘宝的 cnpm 命令行工具,该工具使用淘宝的镜像源,可以解决部分下载问题。首先,安装 cnpm : 然后使

    2024年02月03日
    浏览(39)
  • 安装node-sass失败 或 npm install Error: not found: python2 解决方案

    1. 安装python2 可以用npm命令安装 也可以自行下载安装 Python 2.7 2. 安装完毕后配置环境变量 3.再配置一下版本 node-sass 实在太坑了,之前遇到安装失败使用方法一完美解决。最近又一次遇到了,但是方法一又无效了。于是我又在网上找到另一个方法,就是用 dart-sass 来替换 node

    2024年02月13日
    浏览(61)
  • Win10安装node-sass

    今天在Github上下载了一个前端开源项目,当我使用 npm 安装依赖时出现了各种问题,解决过程中学了挺多知识,刚好总结一下。 安装依赖,在根目录下执行 –legacy-peer-deps 因为项目比较老,所以本地Node版本与项目版本有差距,就不能直接安装依赖。报错建议使用 --legacy-peer

    2024年02月09日
    浏览(36)
  • vue 中node-sass和sass版本问题解决

    先开始使用 “node-sass”: “^7.0.1” “sass-loader”: “^10.0.5” 然后使用npm install报错 后面百度,搜到了是因为 node-sass和sass-loader版本不对应造成。 然后修改版本,增加sass引用 “node-sass”: “^7.0.1” “sass-loader”: “^7.3.1”, “sass”:“1.26.5”, 然后npm install安装正确,但是npm r

    2024年02月11日
    浏览(40)
  • node-sass 安装失败 Command failed 报错 node_modules\node-sass: Command failed. Exit code: 1

    通过 yarn install 安装依赖包 node-sass 时总是报错, 具体的错误原因为 当前使用的node版本与依赖的node-sass版本不匹配,调整当前node版本,建议使用nvm来控制node版本切换 具体对应关系如下: NodeJS Supported node-sass version Node Module Node 19 8.0+ 111 Node 18 8.0+ 108 Node 17 7.0+, 8.0 102 Node 16 6

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包