我知道如何使從GitHub上發佈的NPM的依賴:NPM安裝/依賴從GitHub上發佈二進制
"dependencies": {
"package-name": "user/repo#v1.0.0"
}
這很好,但我想從這個版本安裝特定的二進制 。
我試圖
"dependencies": {
"package-name": "https://github.com/user/repo/releases/download/v1.0.0/bin.tgz"
}
但我給了我以下錯誤:
❯ npm install
npm ERR! fetch failed https://github.com/user/repo/releases/download/v1.0.0/bin.tgz
npm WARN retry will retry, error on last attempt: Error: fetch failed with status code 404
二進制發行資產exist outside of GitHub和正在使用AWS S3。
的URL github.com/user/repo/releases/download/v1.0.0/bin.tgz
與302
狀態和HTTP位置頭設置爲https://github-cloud.s3.amazonaws.com/releases/XXX/XXX...
如果我直接與S3網址我有一個ENAMETOOLONG錯誤(see NPM issue)嘗試重定向:
> npm install https://github-cloud.s3.amazonaws.com/releases/XXX/XXX...
npm ERR! tarball.destroy is not a function
npm WARN retry will retry, error on last attempt: Error: ENAMETOOLONG: name too long, open '/var/folders/pn/......
問題:
- 爲什麼NPM不是fo放棄重定向?
- 爲什麼選擇
404
? - 有沒有辦法將NPM依賴鏈接到GitHub發行版的二進制tarball中?怎麼樣?
我的背景和需要:
- 我有一個私人的GitHub庫
- 我的包需要 「部署」 前建成(transpilation等)
- 我想在我的GitHub發行版中「發佈」這個構建的tarball,並直接將其引用到我的NPM依賴項
- 我使用CI服務來構建,製作壓縮包旁邊上傳至GitHub的釋放
- 我想用GitHub上發佈二進制的NPM庫
相關
- SO問題:How to install an npm package from GitHub directly?
- NPM問題:https://github.com/npm/npm/issues/3055
你能在更多的解釋詳細說明你如何設置http代理? – line72