node.js - 使用 GitHub 上的包作为依赖项,而无需安装 Git

标签 node.js git github npm package.json

我有一个主包,在它的 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.

我不确定如何解决这个问题,我可以想到几种路线;

  1. 将所有依赖项本地打包到 tarball 中
  2. 以某种方式在远程容器上安装 Git(我可以使用 package.json 来完成此操作吗?)
  3. 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/

相关文章:

javascript - 如何在 NodeJS 中以正确的顺序传递消息?

生产环境中的 Node.js 应用程序部署?

node.js - 存储后如何从 MongoDB 中检索二进制文件?

windows - git bash (cache passphrase key) : Can't get the ssh-agent to run on windows, 修改了.bashrc 和.profile

github - GitHub Actions 中的嵌套模板(从另一个 yaml 文件调用 yaml 文件)

javascript - Chai 库中 .to 的用途是什么?

Android Studio 推送到 Github

git - 为什么我收到错误 "fatal: ' C :/Program Files (x86)/Git' is outside the repository"when I run "git reset --hard ~1" from within the repository?

git - 使用 go-git 从 GitHub Enterprise 克隆存储库

Git pull origin <branch> 覆盖 master?