取决于在package.json中使用git URL的分支或标记?

假设我已经用bug修复了一个节点模块,并且我想在function分支上使用我的固定版本,直到bug修复被合并并释放。

我将如何写入我的package.jsondependencies

从npm文档 :

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

per @ dantheta的评论:

截至npm 1.1.65,Github的URL可以更简洁的用户/项目。 npmjs.org/doc/files/package.json.html你可以像用户/项目#分支附加分支

所以

 "babel-eslint": "babel/babel-eslint", 

或者对于jscs上的标签v1.12.0:

 "jscs": "jscs-dev/node-jscs#v1.12.0", 

请注意,如果你使用npm –save,你会得到更长的git

https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Git URL作为依赖关系

Git的URL可以是这样的forms:

git://github.com/user/project.git#commit-ish git + ssh:// user @ hostname:project.git#commit-ish git + ssh://user@hostname/project.git#commit- ish git + http://user@hostname/project/blah.git#commitish git + https://user@hostname/project/blah.git#commitish

commit-ish可以是任何可以作为参数提供给git checkout的标签,sha或分支。 默认是主。

GitHuburl

从版本1.1.65开始,你可以把GitHub的URL称为“foo”:“user / foo-project”。 就像使用git URL一样,可以包含commit-ish后缀。 例如:

{“name”:“foo”,
“版本”:“0.0.0”,
“依赖”:{“express”:“visionmedia / express”,“mocha”:“visionmedia / mocha#4727d357ea”}}

如果你想使用develfeature分支,或者你没有发布一个特定的包到NPMregistry,或者你不能,因为它是一个私人模块,那么你可以指向一个git:// URI而不是一个版本你的package.json

 "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。

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

npm install gitAuthor/gitRepo#tag

如果repo是一个有效的NPM包,它将在package.json中被自动别名为:

{ "NPMPackageName": "gitAuthor/gitRepo#tag" }

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