完全離線的開發環境下安裝node-sass
我的win32-x64-64_binding.node.install.bat
set SASS_BINARY_PATH=D:/code/win32-x64-64_binding.node
yarn add node-sass -D --verbose
在d:/code目錄下放相應的文件,從github上下載下來
把win32-x64-64_binding.node.install.bat拷貝到項目的根目錄下,與package.json同目錄
背景
要在一個完全離線的環境下聯調,涉及的改動比較多,而且該網絡不能連接任何的usb設備,所以代碼有問題希望能在完全離線的環境下直接修改。在安裝了本地的cnpm server之后,遇到了node-sass安裝問題,需要SASS Binary。本文主要介紹如何解決缺少這個Binary文件的問題。
(簡書MarkDown編輯器不支持頁面內跳轉,這里沒有傳送門,解決方案在下面,前言可以略過)
前言
Less & SASS
現在前端的預處理語言,Less & SASS兩家獨大,而如何選擇這個問題應該有很多人遇到過。雖然根據StackOverflow的統計數據,SASS的使用者明顯更多,不過SASS上面有一個問題,編譯SASS需要安裝Ruby,而Ruby官網因為眾所周知的原因在國內訪問不了,因此僅僅就國內來說,很多人因此選擇了Less。
其實他們倆區別真不大,主要的區別如下:
編譯環境不一樣
SASS安裝需要Ruby環境;Less需要引入Less.js來處理。
變量符不一樣, Less :
@
,SASS:$
。作用域其實也有點不同,Less是存在局部變量這么一說的,SASS則一直都是后面定義的變量會替換掉前面定義的,而不管前面那個變量定義的層級。
輸出設置。
Less沒有輸出設置。SASS則可以配置輸出設置:
nested
,compact
,compressed
,expanded
,默認nested
。SASS支持條件判斷和循環語句,比如
ifelse
,for
等等。而Less不支持。這一點其實是比較重要的一點,權衡考量使用SASS還是Less,也就在這了。不過這個需求對我來說,一般來說沒有或者沒這么迫切,對大部分的業務需求來說應該也是吧。
所以該選擇哪個?
其實沒關系,如果你用Less那就繼續Less,如果Antd用的比較多那用Less也可以少配置一個SASS loader。功能需求更多,那SASS會更適合你。
解決方案
從以下網址中尋找到對應平台的Binary文件:https://github.com/sass/node-sass/releases,比如Linux下:https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-59_binding.node。
設置環境變量:
set SASS_BINARY_PATH=$fileLoactionOnYourDisk
- 然后正常的安裝node-sass:
npm install node-sass
或者:
set SASS_BINARY_PATH=$fileLoactionOnYourDisk && npm install node-sass