使用 Npm 从 github 安装特定分支

Posted

技术标签:

【中文标题】使用 Npm 从 github 安装特定分支【英文标题】:Install specific branch from github using Npm 【发布时间】:2017-02-05 13:00:33 【问题描述】:

我想在我的项目中使用 npm 从 github 安装 bootstrap-loader

目前他们正在维护这个项目的两个版本,与 webpack 版本 1 和 2 兼容。

我想安装版本1。我应该使用什么 npm 命令来安装它?

我尝试使用下面的一个,但它不起作用。

npm install git://github.com/shakacode/bootstrap-loader.git[#v1] --Save 

【问题讨论】:

【参考方案1】:

npm: npm install username/repo#branchName --save

纱线: yarn add username/repo#branchName

例如 npm i betimer/rtc-attach#master --save(我的用户名是betimer)

// this will appear in your package.json:
"rtc-attach": "github:betimer/rtc-attach#master"

我还想提一提:签入 package.json 以使构建服务器自动拉取更改并不是一个好主意。相反,将 npm i(第一个命令)放入 build 命令中,让服务器安装和替换包。

还有一点需要注意,如果 package.json 私有设置为 true,有时可能会产生影响。

【讨论】:

你有没有机会为 monorepo 中的包执行此操作? @PaulRazvanBerg 是的,你可以这样做npm install <folder> 不起作用:npm i facebook/github.com/facebook/jest.git#master --save。或者这个:npm i facebook/git@github.com:facebook/jest.git#master --save。也不行 @Donato 请遵循示例中的模式 这可能是因为 package.json 中的包私有或其他设置,您可以分叉该 repo,并删除所有可疑设置,然后连接到您的分支。这是我的一些想法。 @多纳托【参考方案2】:

您尝试的命令中有多余的方括号。

要从brach-name 分支安装最新版本,您可以使用:

npm install "https://github.com/shakacode/bootstrap-loader.git#branch-name" --save

【讨论】:

如果我们必须附加特定版本。那么它会如何与分支一起呢? @Md_ZubairAhmed 在他的示例中,分支名称恰好被命名为“v1”——它可以命名为“my-branch”之类的其他名称,并且行为方式相同。 如果要安装特定的comit,可以这样做:npm install https://github.com/username/package#3d0a21cc 其中3d0a21cc 是commit hash 的前八个字符。我找到了这个答案here 关于信息,github 已经删除了git:// procotol,所以你不能再使用这个方法了。您应该省略协议,让 npm 检测到它是一个 github 存储库(请参阅下面的答案:npm install username/repo#branchName --save【参考方案3】:

我正在使用 SSH 来验证我的 GitHub 帐户,并在我的项目中安装了几个依赖项,如下所示:

"dependencies": 
  "<dependency name>": "git+ssh://git@github.com/<github username>/<repository name>.git#<release version | branch>"

【讨论】:

谢谢!只是评论一下,这是我使用 npm i 添加的方式。 (注意 github.com 和用户名之间的 : 而不是 /npm i git+ssh://git@github.com:/.git#【参考方案4】:

必须将网址放在引号中才能正常工作

npm install "https://github.com/shakacode/bootstrap-loader.git#v1" --save

【讨论】:

【参考方案5】:

尝试了建议的答案,但只能使用这种前缀方法:

npm i github:user/repo.git#version --save -D

【讨论】:

添加一些解释,说明此答案如何帮助 OP 解决当前问题【参考方案6】:

另一种方法是将以下行添加到 package.json 依赖项:

"package-name": "user/repo#branch"

例如:

"dependencies": 
    ... other dependencies ...

    "react-native": "facebook/react-native#master"

然后执行npm installyarn install

【讨论】:

【参考方案7】:

您可以将 git 模式作为版本,yarn 和 npm 足够聪明,可以从 git repo 中解析。

yarn add any-package@user-name/repo-name#branch-name

或用于 npm

npm install --save any-package@user-name/repo-name#branch-name

【讨论】:

不起作用。尝试以下操作: npm i jest@facebook/git@github.com:facebook/jest.git#master【参考方案8】:

npm的Doc定义repo_url后面只能指定tag/version。

这里是文档:https://docs.npmjs.com/cli/install

【讨论】:

文件明确指出#commitish允许npm install &lt;git remote url&gt;

以上是关于使用 Npm 从 github 安装特定分支的主要内容,如果未能解决你的问题,请参考以下文章

从特定分支或打开拉取请求安装 React-Admin 包

从 GitHub 上的特定仓库/分支安装扩展?

模块解析:NPM 安装来自 Github 的 Typescript 包

从分支获取最新 Git 提交哈希的命令

如何从 GitHub 为 Meteor 安装 NPM 包?

使用git克隆项目从dev分支上更新代码以及将代码提交到Coding(或GitHub)上面