簡體   English   中英

使用npm install跳過GitHub依賴項

[英]Skip GitHub dependencies with npm install

簡要介紹一下,我有自動構建的程序,該程序會安裝NPM的依賴項以對它們進行一些分析。 因此,重要的是要考慮,在運行npm install ,該應用程序甚至不需要工作,我只需要依賴項即可。

為了簡單起見,假設我來自package.json的dependencies看起來像這樣(實際上有更多的依賴項,但是它們並不重要):

"dependencies": {
  "pdf2json": "git://github.com/jmdeejay/pdf2json.git#a384122f",
  "phone": "~2.3.7",
},

可以安裝phone沒有任何問題,但pdf2json卻沒有。

當我運行npm install ,出現以下錯誤:

[10:21:19][Step 1/4] npm ERR! C:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/jmdeejay/pdf2json.git
[10:21:19][Step 1/4] npm ERR! 
[10:21:19][Step 1/4] npm ERR! fatal: unable to connect to github.com:
[10:21:19][Step 1/4] npm ERR! github.com[0: 192.30.253.112]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR! github.com[1: 192.30.253.113]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR! 
[10:21:19][Step 1/4] npm ERR! 
[10:21:19][Step 1/4] npm ERR! exited with error code: 128

我相信它可能與構建服務器的防火牆或所述服務器的某些配置有關,但這不是我要解決的問題。

我查看了npm-confignpm安裝文檔,但是找不到想要的標志。 我想知道: 是否有一種方法可以跳過NPMrepository以外的其他來源的依賴關系,或者在其中一個失敗時繼續安裝依賴關系?

我不需要分析此軟件包,因為它間接地屬於我的組織,因此跳過它會很好,但是我不能簡單地將其從package.json刪除,因為它實際上是用於將應用程序安裝在其他情況。

編輯

有評論指出使用git://可能不是一個好的解決方案,但是根據NPM文檔,這應該可以工作。 以下屏幕截圖來自npm文檔 ,第四行與我的配置匹配

使用Git安裝NPM

我可以確認git://不是拼寫錯誤,它是在正在運行的項目的package.json中以這種方式鍵入的。 我也沒有機會更改此配置文件,因為我沒有該項目的所有權。

回答我自己的問題感覺很尷尬,但是我在@evolutionbox的評論幫助下找到了解決方案。

我無法修改package.json文件,但最終在腳本中這樣做:

git config --global url."https://".insteadOf "git://"
npm install
git config --global url."git://".insteadOf "https://"

這樣,我臨時將我的配置更改為可以正常工作的內容(盡管根據npm的文檔, git://應該可以正常工作)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM