node-sass在內網環境下的安裝

由於在內網開發,在將源代碼遷移到內網中,使用Jenkins構建時出現node-sass版本問題

首先先解決vue-cli-service: Permission denied權限問題

chmod -R 755 ./*

在網上查了各種解決方案,原理與方法都大同小異。

1、查找當前系統下node-sass所需的鏡像文件版本

// 查看當前系統使用版本
node -p "[process.platform,process.arch,process.versions.modules].join('-')"

在這裏插入圖片描述
2、根據所需使用版本,去node-sass的GitHub官網下載對應版本,並存放到某一目錄下

https://github.com/sass/node-sass/releases  
( 下載地址,根據自己的版本下載 我是 win32-x64-67_binding.node )

3、修改node-sass的環境變量,

set SASS_BINARY_PATH=D:/nodejs/.nodes/win32-x64-67_binding.node  (根據自己的地址和文件名修改)

4、安裝node-sass模塊

npm i node-sass -D --verbose

本人上述方案在多次嘗試後,以失敗告終。
經研究發現node-sass根據系統讀取各自版本的node-sass編譯文件
例如:在windows系統下,執行npm install,會下載win32-x64-67_binding.node文件並執行該文件進行編譯。但是將代碼遷移到linux下時,運行編譯命令會提示版本異常,這是因爲node-modules中沒有linux到node-sass包,所以需要再次執行npm install去下載當前系統到node-sass包。

上述大致清楚原因後,解決方案就有思路了,直接簡單粗暴,我們將三個系統的node-sass版本都下載下來不就不受系統影響來麼;

1、查找當前系統下node-sass所需的鏡像文件版本

// 查看當前系統使用版本
node -p "[process.platform,process.arch,process.versions.modules].join('-')"

在這裏插入圖片描述
2、根據所需使用版本,去node-sass的GitHub官網下載對應版本
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這裏我將windows、macOs、linux的包都下載下來

3、進入到項目node_modules/node-sass/vendor目錄,並根據各系統創建目錄並將node文件放置到目錄下

在這裏插入圖片描述
這樣就可以完美解決在不同系統下導致的node-sass版本異常不能打包問題;

參考博客:
https://www.jianshu.com/p/947d050f98f2
https://blog.csdn.net/qk61508/article/details/83189742
https://www.jianshu.com/p/145cc862ceec
https://www.cnblogs.com/pengfei25/articles/11136263.html
https://blog.csdn.net/evermet/article/details/103735680
https://blog.csdn.net/ojr_up/article/details/78517559

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章