我知道如何从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。
网址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/......
问题:
404
?我的背景和需求:
相关
答案 0 :(得分:1)
我不认为npm根据他们的文档提供了这样做的方法,他们支持使用github的tarball,但不支持发行版附带的特定二进制文件。 https://docs.npmjs.com/cli/install 我认为它将起作用的唯一方法是下载文件并使用“ npm install”文档中所述的“ tarball文件”方式。
我在同一条船上,我想我最终将使用npm私有存储库。
答案 1 :(得分:0)
Github发布基于Git标签。
“...版本基于Git 标签“。
https://help.github.com/articles/creating-releases/
要指定具有Git URL的版本,请在末尾添加适当的标记(如标记)作为URL片段。 例如,对于名为0.3.1的标记:
"dependencies": {
"myprivatemodule": "git@github.com:...#0.3.1"
}
应该填写剪切部分(...):
"myprivatemodule": "git@github.com:{owner}/{project}.git#0.3.1"
并且,当SSH访问不可用时,将需要不同的地址格式:
"myprivatemodule": "git://github.com/{owner}/{project}.git#0.3.1"
答案 2 :(得分:0)
404是因为您是私人回购并且未在网址中包含身份验证。
公开回购:
"agentframework": "https://codeload.github.com/agentframework/agentframework/tar.gz/beta"
私人回购:
的package.json
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"agentframework": "https://codeload.github.com/agentframework/agentframework/tar.gz/beta"
}
}
BTW:您可以使用我在项目中使用的yarn install