1. 程式人生 > 其它 >問題記錄-前端開發閉坑(1)--安裝node-sass失敗的相關原因及解決方案

問題記錄-前端開發閉坑(1)--安裝node-sass失敗的相關原因及解決方案

背景

本系列用於記錄自己遇到的前端開發中的一些坑點,問題可大可小,問題之間不一定有先後關係,甚至不一定存在關聯。

簡評

由於網上已經有很多分析,此處僅簡略描述錯誤原因及相應的解決方案;同時,由於部分情況並未遇到,因此更多的相關解決方案會放連結在文末,有需自取。
本人對 Node 相關技術還了解不多,如有問題,歡迎指正。

問題描述

開發環境(此處僅列出與問題相關的): NodeJS v16.14.2,npm 包管理器 v8.5.5,sass 前處理器
問題:通過 npm 安裝 sass 相關依賴失敗,依次是 node-sass 、sass-loader

場景1

錯誤原因:找不到 python 相關依賴
分析:node-sass 安裝時需要從 github 上下載一個.node 檔案,該檔案用於編譯二進位制檔案(相關原理尚未完全瞭解)
解決方案1:通過 npm 安裝 python 相關環境(未驗證)。
解決方案2:不想安裝 python 的,可以更換為 cnpm 指令直接從淘寶映象下載 node-sass,從而避開從 github 下載 .node檔案。

npm install -g cnpm --registry=https://registry.npm.taobao.org (後面是註釋,請不要複製)該指令用於安置 cnpm
cnpm install node-sass (後面是註釋,請不要複製)該指令通過國內映象安裝外掛
解決方案3:或者仍然通過 npm 安裝 node-sass,但將 .node 檔案的源更換為國內映象
set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ && npm install node-sass

注意以上解決方案不適用出現錯誤原因2的情況,因此建議先確定不是原因2導致後,再嘗試以上解決方案。

場景2

錯誤原因:node-sass 與 NodeJS 版本不相容
分析:Node 是 JS 的執行環境,而 node-sass 只是一個外掛,兩者的維護方相互獨立,因此很容易導致相容性問題發生。安裝前需要通過官方文件瞭解兩者的相容版本。此連結導向官方文件:https://github.com/sass/node-sass/releases
解決方案:根據 Node 版本找到對應相容的 node-sass 版本,較新的版本基本都能順利相容,若還是有問題,可以嘗試以下版本

NodeJS v16.14.2: node-sass v6.0.1,sass-loader ^10.2.0

一個建議:剛上手通過 Node 搭建專案時,建議通過腳手架建立模板專案,而不是從頭開始建立,避免更多潛在的相容性問題以及外掛之間相互依賴產生的問題鏈。安裝新的依賴前,先排除可能的相容性問題。

更多原因與解決方案: