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 的版本了,建議前面的方法都解決不了在嘗試.

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。