1. 程式人生 > 其它 >npm install node-sass報錯問題的解決

npm install node-sass報錯問題的解決

主要是node-sass版本問題,他的版本看和node版本對應

0 安裝

可以去這裡找到v12的版本。(不要用12.0,可以用12.1)

https://npm.taobao.org/mirrors/node/

NPM是隨同NodeJS一起安裝的包管理工具。JavaScript-NPM類似於java-Maven。

命令列輸入node -v 檢查配置好了,配置npm的映象倉庫地址,再執

node -v
npm config set registry http://registry.npm.taobao.org/

1 版本資訊

去https://github.com/sass/npnode-sass 或者 https://github.com/sass/node-sass/releases 都可以看到node和node-sass對應的版本資訊

NodeJSSupported node-sass versionNode Module
Node 155.0+88
Node 144.14+83
Node 134.13+, <5.079
Node 124.12+72
Node 114.10+, <5.067
Node 104.9+64
Node 84.5.3+, <5.057
Node <8<5.0<57

從https://github.com/sass/node-sass/releases?after=v4.12.0 也能看出4.9.2最多隻支援到node10。

2 正常命令

  • 映象加速:
    • npm config set registry http://registry.npm.taobao.org/

在專案專案下執行

# 指定node-sass版本,這句等價於修改package.json檔案了。
# 注意不要指定4.9.2了
npm install  [email protected]

#安裝其他依賴:
npm install

# 啟動專案:
npm run dev

然後直接就可以執行起來了。如果沒驗證碼什麼的,是因為java專案沒有啟動

2.1 解除安裝殘留問題

你可能按著評論區或視訊的東西安裝試過了,要注意執行我上面程式碼時要先清依賴殘留,否則安裝不上

npm rebuild node-sass
npm uninstall node-sass

上面步驟等價於直接刪除node_modules,只不過node_modules是刪了全部下載的依賴包

執行成功案例:

PS F:\renren-fast-vue> npm install
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

up to date in 10.975s

2 packages are looking for funding
  run `npm fund` for details
  
 # warn先不用管
 # 執行
 npm run dev
 #  I  Your application is running here: http://localhost:8001
 

瀏覽器輸入localhost:8001 就可以看到內容了,登入admin、 admin

我們還可以看到VS和IDEA聯動了

3 視訊評論區說法的錯誤

從上表看,如果你是node12,你得安裝node-sass4.12版本以上的,我不知道評論區為什麼4.9.2就可以了,應該是碰巧相容了。

另外評論區寫的映象地址https://npm.taobao.org/mirrors/node-sass/ ,你在瀏覽器中輸入後,你會發現他有4.9.4和5.0.0,卻沒有4.14+。

還有一種可能是,npm i這種語法在映象中自動幫你檢測與node版本最匹配的npm依賴包版本號(有這種功能),所以我個人認為你改了4.9.2也沒有用。他根本不按照你寫的來,自動匹配到了你指定的映象裡的版本號,他想要4.12+,但是你指定的映象地址裡沒有,所以他就升級到使用5.0.0,這點是可以驗證的,你此時看你專案裡寫的版本號,你明明寫的4.9.2,他自動變成了^5.0.0。所以你寫9.0還是9.2都無所謂,因為根本不按你的來(注意安裝過的話先執行後文解除安裝操作)

綜上,其實我不建議你寫npm -i加連結的方式,原因如下:

安裝了5.0版本後,你可能按此方法也能正常使用了,但安裝時還是有個警告:

npm install
npm WARN sass-loader@6.0.6 requires a peer of [email protected]^4.0.0 but none is installed. You must install peer dependencies yourself.

這個應該說sass-loader@6.0.6需要低版本的sass,我除以為是升級sass-loader@6.0.6即可,但是升級後報錯其他,可能是程式碼跟版本有關係,所以這是個很矛盾的配置

所以我們被用i的方式讓他升級到版本5了,我們直接@4.14,這個版本相容node12和node14

3.1 python問題?

視訊評論區有人說得先安裝python,因為我本身已經安裝了anaconda,所以不確定影響與否。如果失敗可以嘗試安裝python3.0以上版本,並配置全域性變數。(根據人人開發文件介紹: node使用8.x版本,無需做任何改動,如果報錯,執行npm rebuild node-sass之後,然後重新install即可,無需安裝python)

3.2 npm i方式安裝?

評論區提供了這麼一種解決方式,這個我上面說過了,映象裡並沒有4.14版本,你使用了版本5的又造成sass-loader不匹配,升級sass-loader程式碼又報錯。所以這裡不適合用這個。

  • 單獨安裝node-sass: npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

  • node和node-sass有版本對應關係。node12對應4.14的node-sass

  • i是install的縮寫

3.3 chromedriver問題?

按理說沒有這個問題

  • npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver

知識點:

1、npm i是什麼

npm -h

C:\Users\HAN>npm i -h

npm install (with no args, in package dir)
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <alias>@npm:<name>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>

aliases: i, isntall, add
common options: [--save-prod|--save-dev|--save-optional] [--save-exact] [--no-save]

你會發現npm是npm install的簡寫,但也有區別:

\1. 用npm i安裝的模組無法用npm uninstall刪除,用npm uninstall i才解除安裝掉 (這個說法我比較懷疑)
\2. npm i會幫助檢測與當前node版本最匹配的npm包版本號,並匹配出來相互依賴的npm包應該提升的版本號
\3. 部分npm包在當前node版本下無法使用,必須使用建議版本
\4. 安裝報錯時intall肯定會出現npm-debug.log 檔案,npm i不一定

我試過用npm i代替npm install,結果是4.9.0的下載下來了,但是報錯環境不匹配

指定安裝版本

修改package.json中 node-sass 版本,下載高版本node-sass,支援node10

1.1 手動下載node檔案,安裝 npm i node-sass --sass_binary_path=/{path}/win32-x64-64_binding.node
1.2 指定版本安裝:npm install [email protected] --save

package.json檔案的作用

https://blog.csdn.net/csm0912/article/details/90264026

阿里雲映象網站

npm:https://developer.aliyun.com/mirror/NPM

https://developer.aliyun.com/mirror/

關係

npm install sass-loader node-sass webpack --save-dev

必須安裝node-sass才能安裝sass-loader