安装node-sass失败原因及解决办法汇总

node,sass · 浏览次数 : 0

小编点评

**安装 node-sass** **方法 1:使用淘宝镜像** 1. 使用 `npm set sass_binary_site` 命令设置淘宝镜像地址。 2. 重启 npm。 3. 执行 `npm i node-sass` 命令。 **方法 2:搭建 Python 环境** 1. 从官方网站下载并安装 Python 3.7 或更高版本。 2. 将 Python 安装路径添加到环境变量 `PYTHONPATH` 中。 3. 更新 npm 配置:`npm config set proxy http://127.0.0.1:1080`。 4. 重新执行 `npm i node-sass` 命令。 **方法 3:使用 Node Version Manager (nvm)** 1. 安装 Node Version Manager (nvm)。 2. 使用 `nvm install node` 命令安装 Node 版本。 3. 使用 `nvm use ` 命令切换到指定版本。 4. 重新执行 `npm i 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 上面,而这个网址在国内总是"网络不稳定",所以我们需要通过第三方服务器下载这个文件。

解决办法

1. 使用淘宝镜像
npm set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass

然后重新执行 npm i node-sass 即可完成安装。

2. 使用梯子

假设你的梯子在你本地机器上开启了一个第三方服务器 127.0.0.1:1080,那么只需按照下面的方法配置一下就能正常安装 node-sass 了(如果你开启的是 PAC 模式而不是全局模式,那还需要将 s3.amazonaws.com 加入 PAC 列表):

npm config set proxy http://127.0.0.1:1080
npm i node-sass

# 下载完成后删除 http 代理
npm config delete proxy
3. 本地指定.node文件

比如我们在安装 node-sass 的时候可以发现它需要下载具体版本对应的 .node 文件:

$ npm install --save-dev node-sass
> node-sass@5.0.0 install D:\WorkSpace\node-sass-test\node_modules\gulp-sass\node_modules\node-sass
> node scripts/install.js

Downloading binary from http://npm.taobao.org/mirrors/node-sass/v5.0.0/win32-x64-72_binding.node

如果你的办公环境不能访问外网,那么可以从有网络的电脑上将.node文件(下载对应 node-sass 版本以及对应操作系统的)下载过来,再传到离线的电脑上指定 binary 路径来安装,执行以下命令完成安装:

npm i -D node-sass@5.0.0 --sass_binary_path=D:\files\win32-x64-72_binding.node

二、本地编译没有Python环境

方法1:通过 NPM 包

网络正常的情况下安装 node-sass 是不需要Python环境的,如果拉不下来对应的binding.node就会进入尝试【本地编译】,然后会检查是否具备的条件:需要python环境,报的错一般就会提示python没有安装(还是 Mac 香,自带python环境没有这些烦恼),安装下面两个包可以快速解决:

不过需要注意:拉包的方式需要cmd用管理员模式打开! ! !

npm install -g node-gyp
npm install --global --production windows-build-tools

如果本地有网络还好,这两个包如果安装成功了,node-sass 基本就能安装成功了,但是如果你的办公环境限制网络可能也比较坑,参考:离线安装 node-gyp 。

方法2:搭建Python环境(建议2.7)

  • 1、去官网下载 www.python.org/download/re… ;
  • 2、安装成功之后,在环境变量中的系统变量新增python的安装路径;
  • 3、执行 npm rebuild node-sass 重构一下;
  • 4、再重新执行 npm install node-sass

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

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

node-sass 版本的兼容性不好,老项目中依赖的 node-sass 很可能已经不兼容新的 node 版本,对应版本兼容参考如下(或官方仓库):

NodeJSSupported node-sass versionNode 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

出现 404 了,此时更换 node-sass 或 node 的版本即可。

具体参考方案:

npm i node-sass@4.8.3

因为Node 8 不能装 node-sass 3.x 这是肯定的(Node 7才对应 3.x),所以得装 node-sass 4.x。

如果项目中还有 gulp-sass 之类的包,而 gulp-sass 2.x 里面用了 node-sass 3.x,还是会有坑,所以 gulp-sass 得换到 3.x,建议安装 gulp-sass@3.2.1。

四、没有清理缓存

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

比如 npm i -D node-sass 报错了,就要执行一遍 npm uninstall node-sass,然后再重新安装

与安装node-sass失败原因及解决办法汇总相似的内容:

安装node-sass失败原因及解决办法汇总

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

使用 docker 打包构建部署 Vue 项目,一劳永逸解决node-sass安装问题

> 文章源于 Jenkins 构建 Vue 项目失败,然后就把 node_modules 删了重新构建发现 node-sass 安装不上了,折腾一天终于可以稳定构建了。 > 犹记得从学 node 的第一天,就被 node-sass 折磨了一整天,后面本地没问题了然后服务器开始折磨了,这次又遇到,尝试

安装node.js与webpack创建vue2项目

转载请注明出处: 1.安装node.js 下载地址:http://nodejs.cn/download/ (可查看历史版本) node.js 中文网:http://nodejs.cn/api-v16/ 建议下载稳定版本的msi 格式的进行安装;msi 为windows 直接安装包,一直next即可;

本地JS文件批量压缩

最近在维护一个小后台项目,有段JS需要压缩上传到CDN存储服务器。由于之前压缩的JS文件都比较少,都是手动压缩的。这次需要压缩的文件比较多,所以用了批量压缩。特此记录一下,方便大家和自己以后再用到的时候备忘。 v准备工作 安装nodejs 首先在本地安装node.js和npm,一般npm集成于nod

关于cockpit的学习

# 关于cockpit的学习 ## 背景 ``` 使用node-exporter 可以监控很多资源使用情况 但是这个需要搭建一套prometheus和grafana的工具 并且每个机器都需要安装一套node-exporter的进行数据dump cockpit 是红帽开发的一套监控组件, 可以监控网络

Node工程使用云服务器中的redis镜像做数据库

Redis镜像安装 在云服务器中执行指令 docker pull redis 添加redis镜像实例的配置 [root@VM-0-11-centos ~]# cd /home [root@VM-0-11-centos home]# ls mongotest [root@VM-0-11-centos

Kubernetes(K8S) 安装 Metrics-Server kubectl top (metrics-server) node NotFound

kubectl top (metrics-server) node NotFound components.yaml 网上的各种方法都有问题,找到了一个完整版的 yaml apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: m

Prometheus及Grafana监控服务的安装使用

说明 Prometheus 是一个开放性的监控解决方案,通过 Node Exporter 采集当前主机的系统资源使用情况,并通过 Grafana 创建一个简单的可视化仪表盘。 docker 安装 prometheus(未持久化数据) docker run -d \ -p 9090:9090 \ -v

安装nodejs易遇到的坑

@目录背景描述流程步骤小结 背景描述 我的服务器是centos7.9,打算先直接通过yum安装,但是yum不能指定node版本,我直接指定显示404找不到,然后我设置了下node下载的源,还是不行。那我走手动下载安装的方式吧 流程步骤 首先根据这篇文章要安装前置扩展 yum install cent

pnpm 之降本增效

还在为npm i安装大量依赖等待时间较长,npm扁平化node_modules依赖版本冲突在苦恼吗,不用苦恼pnpm为你保驾护航