node-sass 安裝卡在 node scripts/install.js 解決辦法

======== 7月12日更新 ========node

總的來講就是兩種方法解決:git

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

或者在 ~/.npmrc 裏添加下面這行(參考),保存後再 npm install
(若是是用的 cnpm,須要添加到 ~/.cnpmrc)github

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

如下的內容主要是這個問題出現的分析,有興趣就看npm

======== 7月10日更新 ========ubuntu

評論提醒了我,npm.taobao.org 已經收錄了 node-sass 的源碼,能夠直接指定下載的地址,參考:瀏覽器

https://github.com/lmk123/blog/issues/28sass

https://cnodejs.org/topic/5637549fd426a1404cbd0614bash

============ 原文 ============服務器

一個 node 項目裏用到了 node-sass@3.8.0 ,安裝的時候在這一步:代理

> node-sass@3.8.0 install path/to/project/node_modules/node-sass
> node scripts/install.js

一直卡住,至少有半個小時沒反應,本身的 Mac 和騰訊雲的服務器上都是這樣

去看 node_modules/node-sass/scripts/install.js代碼,發現是要在 GitHub 上下載編譯好的 node-sass 二進制包 ,去看 node-sass 的 Release,平均在 2.5 MB 左右

因而明瞭了,GitHub 在國內訪問原本就不穩定,而後仍是用 request 去訪問,就更慢了。看了一下,半個小時左右才下了 500 K

正好又在 這裏getBinaryPath() 能夠設置二進制的位置。在這以前還要先知道本身的系統須要的版本。

用這行命令:

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

複製輸出的結果,去 Release 列表 找到對應的版本,Ctrl+F 粘貼,找到那個文件,下載(必要的時候掛代理,瀏覽器下載一般都比 node 下載更快更穩定),而後文件存到一個穩定的路徑,並複製路徑(好比 ~/.node/.npm/node-sass/darwin-x64-48_binding.node

~/.npmrc 下面新增一行,新增 sass_binary_path 項並填入剛纔的路徑,好比

sass_binary_path=/home/ubuntu/.npm/node-sass/darwin-x64-48_binding.node

最後再去項目目錄下:

rm -rf node_modules/ && npm i
相關文章
相關標籤/搜索