npm安裝時(shí)的錯(cuò)誤排查的方法
1.npm安裝時(shí)遇到error,從error1 處查看最初的報(bào)錯(cuò)內(nèi)容比較準(zhǔn)
2.根據(jù)error的內(nèi)容查看是哪個(gè)依賴項(xiàng)引起的錯(cuò),查閱package.json里對(duì)應(yīng)的依賴版本和當(dāng)前的node.js版本是否一致
3.缺少C++、python等環(huán)境,按照缺失項(xiàng),安裝對(duì)應(yīng)的運(yùn)行環(huán)境
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
4.缺少微軟C++相關(guān)的開發(fā)庫(kù)
gyp ERR! build error gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
關(guān)鍵字是Visual Studio,需要下載相關(guān)依賴
5.某些依賴鏈接已經(jīng)失效404
如下面這個(gè)會(huì)提示鏈接超時(shí),并且手動(dòng)打開對(duì)應(yīng)的鏈接也是404頁面
> node-sass@3.13.1 install D:\workspace\node_modules\node-sass
> node scripts/install.jsDownloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-64_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-64_binding.node":connect ETIMEDOUT 20.205.243.166:443
Timed out whilst downloading the prebuilt binary
Hint: If github.com is not accessible in your location
try setting a proxy via HTTP_PROXY, e.g.export HTTP_PROXY=http://example.com:1234
or configure npm proxy via
npm config set proxy http://example.com:8080
可以設(shè)置鏡像(淘寶的鏡像不一定好使)、單獨(dú)安裝失敗的依賴設(shè)置(鏈接必須得能訪問才行,老鏈接失效得多)
或者直接用命令安裝對(duì)應(yīng)的缺失版本:
這里是在github上找到了對(duì)應(yīng)原來缺失的sass 3.4.2版本庫(kù)文件
npm install git+https://github.com/sass/node-sass.git#v3.4.2 --save
6.某些依賴項(xiàng)可能是從github上以ssh拉取的,如果本地不配置github的ssh密鑰會(huì)一直timeout,配置完以后git可以拉取說明配置成功
checking installable status 就卡主,然后就timeout,看到了報(bào)錯(cuò)內(nèi)容里有關(guān)鍵字git和ssh。
npm WARN deprecated domexception@1.0.1: Use your platform's native DOMException instead [ ...............] \ fetchMetadata: sill resolveWithNewModule camelcase@4.1.0
手動(dòng)測(cè)試
D:\workspace\git-test>ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed outD:\workspace\git-test>git clone ssh://git@github.com/sohee-lee7/Squire.git
Cloning into 'Squire'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.D:\workspace\git-test>git clone ssh://git@github.com/sohee-lee7/Squire.git
Cloning into 'Squire'...
remote: Enumerating objects: 3598, done.
remote: Total 3598 (delta 0), reused 0 (delta 0), pack-reused 3598
Receiving objects: 100% (3598/3598), 3.08 MiB | 1.59 MiB/s, done.
生成github密鑰,會(huì)在當(dāng)前~/ssh生成圖中文件,還需要手動(dòng)創(chuàng)建配置,讓git的ssh生效才行
7.某些依賴可能是從github上以http協(xié)議拉取的,國(guó)內(nèi)很多情況無法通過http或https訪問github,本地有vpn的話得手動(dòng)給git配置上代理
npm報(bào)錯(cuò)中出現(xiàn)了git.EXE ls-remote -h -t https://github.com/nhn/raphael.git這行,手動(dòng)測(cè)試發(fā)現(xiàn)拉不下來就還是git網(wǎng)絡(luò)問題
8.某些依賴可能是npm直接拉去二進(jìn)制流形式下載的,同理,npm也需要配置代理 ,但是本人測(cè)試以后發(fā)現(xiàn)npm配置代理會(huì)卡主,但是可以對(duì)cmd窗口配置臨時(shí)的代理(窗口關(guān)閉失效),也對(duì)npm生效
npm代理,不行
臨時(shí)cmd窗口代理,行
到此這篇關(guān)于npm安裝時(shí)的錯(cuò)誤排查的方法的文章就介紹到這了,更多相關(guān)npm安裝錯(cuò)誤排查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.js中Mongodb數(shù)據(jù)庫(kù)操作方法(最新推薦)
MongoDB是一種基于分布式文件存儲(chǔ)的NoSQL數(shù)據(jù)庫(kù),它允許存儲(chǔ)和檢索大量結(jié)構(gòu)化數(shù)據(jù),MongoDB的核心概念包括數(shù)據(jù)庫(kù)、集合和文檔,每個(gè)集合可以包含多個(gè)文檔,每個(gè)文檔是一個(gè)鍵值對(duì)的集合,本文介紹Node.js Mongodb數(shù)據(jù)庫(kù)操作方法,感興趣的朋友一起看看吧2024-12-12nodejs獲取表單數(shù)據(jù)的三種方法實(shí)例
在開發(fā)中經(jīng)常需要獲取form表單的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于nodejs獲取表單數(shù)據(jù)的三種方法,方法分別是form表單傳遞、ajax請(qǐng)求傳遞以及表單序列化,需要的朋友可以參考下2021-06-06Node.js學(xué)習(xí)教程之HTTP/2服務(wù)器推送【譯】
這篇文章主要給大家介紹了關(guān)于Node.js學(xué)習(xí)教程之HTTP/2服務(wù)器推送的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10利用nodeJs anywhere搭建本地服務(wù)器環(huán)境的方法
今天小編就為大家分享一篇利用nodeJs anywhere搭建本地服務(wù)器環(huán)境的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05從零學(xué)習(xí)node.js之模塊規(guī)范(一)
Node.js是一個(gè)基于谷歌瀏覽器JavaScript執(zhí)行環(huán)境建立的一個(gè)平臺(tái),讓JavaScript可以脫離客戶端瀏覽器運(yùn)行,讓 JavaScript具有服務(wù)器語言的能力。從本文開始我們進(jìn)行學(xué)習(xí)node.js,這篇文章主要介紹的是node.js中模塊規(guī)范的相關(guān)資料,需要的朋友可以參考下。2017-02-02