我知道如何使从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