假设我已经用一个bug修复了一个节点模块,我想使用我的固定版本,当然是在一个特性分支上,直到bug修复被合并并发布。

如何在package.json的依赖项中引用我的固定版本?


当前回答

如果你想使用任何特定的提交;你可以用这个

模板:

github:{UserName}/{RepoName}#{CommitId}

Package.json中的用法示例:

"react": "github:facebook/react#e40893d097f6894b4768d749f796302c57161734"

其他回答

解决方案1

在npm文档中,使用git URL:

https://github.com/<user>/<project>.git#<branch>

https://github.com/<user>/<project>.git#feature\/<branch>

不要在GitHub上使用git://协议,它不再被支持

解决方案2

从NPM版本1.1.65开始,你可以使用一个缩短的github URL:

<user>/<project>#<branch>

在NPM的最新版本中,你可以这样做:

npm install gitAuthor/gitRepo#标签

如果repo是一个有效的NPM包,它将在包中自动别名化。json:

{ “NPMPackageName”: “gitAuthor/gitRepo#tag” }

如果你能把这个添加到@justingordon的答案中,现在就不需要手动别名了!

如果你想使用devel或feature分支,或者你还没有将某个包发布到NPM注册表中,或者因为它是私有模块而不能发布,那么你可以在package.json中指向git:// URI而不是版本号:

"dependencies": {
   "public": "git://github.com/user/repo.git#ref",
   "private": "git+ssh://git@github.com:user/repo.git#ref"
}

#ref部分是可选的,它可以是一个分支(如master),标签(如0.0.1)或部分或完整的提交id。

如果这对任何人都有帮助,我尝试了上面的所有方法(https w/token模式)-仍然没有任何工作。我没有得到错误,但什么都不会安装在node_modules或package_lock.json。如果我更改了令牌或回购名称或用户名中的任何字母,等等-我会得到一个错误。所以我知道我有正确的代币和回购名称。

我最终意识到这是因为包中依赖项的名称。Json与包中的名称不匹配。我试图拉的回购的json。甚至npm install——verbose也没有说有任何问题。它似乎忽略了依赖关系w/o错误。

如果你想使用任何特定的提交;你可以用这个

模板:

github:{UserName}/{RepoName}#{CommitId}

Package.json中的用法示例:

"react": "github:facebook/react#e40893d097f6894b4768d749f796302c57161734"