为什么' npm version '没有提交更新后的package.json ?



我正在使用Travis发布一个npm模块到npmjs.org。

.travis.yml的相关部分为:

before_deploy:
  - npm version minor
  - git config credential.helper "store --file=.git/credentials"
  - echo "https://${GH_TOKEN}:@github.com" > .git/credentials
  - git push && git push --tags

我看到标签已经创建,但是对package.json的更改是而不是使其进入git repo。

查看travis-ci.org的日志,我看到:

$ npm version minor
v1.3.0
$ git config credential.helper "store --file=.git/credentials"
$ echo "https://${GH_TOKEN}:@github.com" > .git/credentials
$ git push && git push --tags
Everything up-to-date
Counting objects: 6, done.
Delta compression using up to 16 threads.
Compressing objects:  25% (1/4)   
Compressing objects:  50% (2/4)   
Compressing objects:  75% (3/4)   
Compressing objects: 100% (4/4)   
Compressing objects: 100% (4/4), done.
Writing objects:  25% (1/4)   
Writing objects:  50% (2/4)   
Writing objects:  75% (3/4)   
Writing objects: 100% (4/4)   
Writing objects: 100% (4/4), 411 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To https://github.com/Jellyvision/basecamp-api.git
 * [new tag]         v1.3.0 -> v1.3.0

所以,很明显,包的变化。json没有被添加或提交,因为push显示一切都是最新的。

新标签向上推。

当我在本地运行npm version minor时,我看到新提交按预期生成,所以我猜这是与环境相关的,但我在文档中找不到任何表明npm version在CI环境中工作不同的东西。

有什么建议吗?

我们创建了这个publish.sh脚本,首先更新npm包的版本,然后更新我们的存储库…

#!/bin/sh
npm version $1
git push --follow-tags
npm publish

使用例子:

%> ./publish.sh 2.2.41

注意git push --follow-tags的使用。这样做的效果是改变package.json文件中的版本,使用package.json中的版本在git中创建一个标签发布,并更新master分支。

我也面临着同样的问题。

使用标志--git-tag-version为我工作。

npm version minor --git-tag-version

最新更新