使用 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:必须将网址放在引号中才能正常工作
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 install
或yarn 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 <git remote url>
以上是关于使用 Npm 从 github 安装特定分支的主要内容,如果未能解决你的问题,请参考以下文章