【发布时间】:2023-03-25 22:36:01
【问题描述】:
我知道如何从 GitHub 版本中创建 NPM 依赖项:
"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 URL,我会收到 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 不遵循重定向?
- 为什么是
404? - 有没有办法将 NPM 依赖项链接到 GitHub 版本的二进制 tarball?怎么样?
我的背景和需求:
- 我有一个私人 GitHub 存储库
- 我的包需要在“部署”之前构建(transpilation等)
- 我想在我的 GitHub 版本中“发布”此构建的 tarball,并将其直接引用到我的 NPM 依赖项
- 我使用 CI 服务构建、制作 tarball 并将其上传到 GitHub 版本旁边
- 我想使用 GitHub 发布二进制文件作为 NPM 存储库
相关
【问题讨论】:
标签: github npm npm-install