我有一个主包,在它的 package.json
中存在对 GitHub 上的包的依赖项:
"dependencies": {
"private-package": "user/private-package"
},
这一切在我的本地计算机上运行良好,它下载并安装了软件包。
但是,这需要安装在我没有任何权限的托管容器上。它需要主包的 tarball 并将安装所有依赖项。然而,这会失败并显示以下日志;
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.
我不确定如何解决这个问题,我可以想到几种路线;
- 将所有依赖项本地打包到 tarball 中
- 以某种方式在远程容器上安装 Git(我可以使用
package.json
来完成此操作吗?) - Git 包的一些不同结构不需要 Git 安装依赖项
第一个问题是我开始时遇到的最初问题,这导致我采用了 GitHub 方法(我使用本地包,在此之前我似乎无法制作 tarball 的一部分,无论如何)。
有什么方法可以依赖 GitHub 存储库,以便在不使用 Git 的情况下安装它吗?
最佳答案
您应该能够provide a URL to a source tarball无需 Git 即可下载和使用,例如:
"private-package": "https://github.com/<user>/<project>/archive/<tag>.tar.gz"
您可能还需要处理 GitHub 身份验证。与其使用常规用户名和密码,不如创建 an access token 可能是个好主意。它的访问权限非常有限,只能提供其完成工作所需的信息。如果您使用双因素身份验证,则需要这样做。
获得此 token 后,您应该能够将其添加到 URL,例如类似的东西
"private-package": "https://<user>:<token>@github.com/<user>/<project>/archive/<tag>.tar.gz"
关于node.js - 使用 GitHub 上的包作为依赖项,而无需安装 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55808495/