我有一个主软件包,在其package.json
中有对GitHub上软件包的依赖项:
"dependencies": {
"private-package": "user/private-package"
},
这一切都可以在我的本地计算机上正常运行,它可以下载并安装软件包。
但是,这需要安装在我没有任何权限的托管容器上。它需要主软件包的压缩文件,并将安装所有依赖项。但是,此操作失败并显示以下日志;
npm ERR! code ENOGIT
npm ERR! No git binary found in $PATH
npm ERR!
npm ERR! Failed using git.
npm ERR! Please check if you have git installed and in your PATH.
我不确定如何解决这个问题,我可以想到几条路线;
package.json
进行此操作吗?)数字1是我最初遇到的最初问题,这导致我采用GitHub方法(我使用了本地软件包,在此之前,无论如何我似乎都无法成为tarball的一部分)。
是否有任何方法可以依赖GitHub存储库,以便无需使用Git即可安装它?
答案 0 :(得分:1)
您应该能够provide a URL to a source tarball下载并使用它,而无需Git,例如:
"private-package": "https://github.com/<user>/<project>/archive/<tag>.tar.gz"
您可能还必须处理GitHub身份验证。除了使用常规的用户名和密码,最好创建访问权限非常有限的an access token,只提供执行工作所需的权限。如果您使用两因素身份验证,则必须这样做。
拥有此令牌后,您应该可以将其添加到网址中,例如像
"private-package": "https://<user>:<token>@github.com/<user>/<project>/archive/<tag>.tar.gz"
答案 1 :(得分:0)
在使用克里斯的解决方案之前,我已将本地软件包添加到名为repo的软件包中的单独文件夹中,并在package.json中将其引用为;
"dependencies": {
"my-local-package": "file:./repo/my-local-package"
}
如果您的软件包不在Git上,或者远程服务器没有Internet连接,这仍然是解决方案。