enpitsulin

enpitsulin

这个人很懒,没有留下什么🤡
twitter
github
bilibili
nintendo switch
mastodon

node-sass 安装失败解决方案

node-sass 已经被废弃,dart-sass 是官方推荐的选择,也不会遇到本文的问题 现在 npm 上安装 sass 默认已经是 dart-sass 了 —— 2022-3-29

node-sass#

node-sass 是我们开发中很常见的依赖包,也是安装时间冗长和最常见到报错的依赖。无论是自己的项目想要使用还是使用他人的项目进行依赖安装,运行

npm install

总是会出大大小小的毛病

解决#

遇到问题肯定是找搜索引擎啊,基本检索 node-sass 就会出现 [失败,fail] 等关键词联想 =。= 说明这个问题真的是非常普遍。然后简单记录下各种方法还有自己的方法。

这里是一些前人经验:#

因为 npm 源速度慢导致的下载失败#

一般来说都是推荐直接使用 cnpm 下载能够改善

cnpm install

或者更改源设置更完美,没有一些隐性 bug 出现.

npm config set registry https://registry.npm.taobao.org

或者可以仅将 node-sass 的下载源更改成淘宝镜像

npm config set sass-binary-site http://npm.taobao.org/mirrors/node-sass

因为二进制文件源访问速度慢或无法访问#

node-sass 除了 npm 部分的代码,还会下载二进制文件,但是默认源是 github,总所周知,github 国内访问较慢,特殊时期甚至无法访问。我们也可以将其改成国内源,直接添加一条环境变量:

set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ && npm install node-sass

或者可以在项目内添加一条.npmrc 文件然后添加

sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

这样使用 npm 安装 node-sass 时就会去淘宝镜像下载二进制文件了.

最终解决方法#

最终解决方法!使用梯子并设置代理

npm config set proxy http://127.0.0.1:#你梯子开启的本地端口#
npm install node-sass

# 下载完成后删除 http 代理
npm config delete proxy

特殊手段解决#

如果是因为下载失败的原因,那么我们可以提前下载到本地,先是查询系统的版本确定适合哪个版本的二进制文件.

查询指令如下

node -p "[process.platform, process.arch, process.versions.modules].join('-')"

然后会弹出win32-x64-83形式的系统版本,然后在下面两个地址中选择一个去下载对应系统版本的后缀为 .node 的 node-sass 文件

cnpm https://npm.taobao.org/mirrors/node-sass/

github https://github.com/sass/node-sass/releases

然后我们需要手动指定 node-sass 二进制文件的下载源为下载的那个文件.

npm config set sass-binary-path 你存放刚才下载的二进制文件的目录
// 例如 npm config set sass-binary-path e:/web/win32-x64-48_binding.node

然后npm i应该就完事了,但是这个方法的确定就是无法更新 node-sass 的版本了,建议前面的方法都解决不了在尝试.

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。