npm版本是如何工作的?

12
我对npm version的工作原理有点模糊。文档中说:

如果在 git 仓库中运行,它还会创建版本提交和标签。

这是否意味着我不必运行 git commitgit tag ,或者它只是代替了 git tag -a <version> 的功能?如果我像下面这样做,我会创建一个双重提交吗?

git add . -A
git commit -m "<commit message>"
git push origin master
npm version <patch|minor|major> -m "<version description>" ## instead of git tag -a <version> ##
git push --tags
1个回答

18

您的理解大部分是正确的

执行npm version命令时,会执行以下操作:

  1. 按照package.json中指定的方式提高包版本
  2. 创建一个提交,只包含对package.json的更新,并使用调用npm version时指定的消息。
  3. 创建一个git标签

然后,您可以执行npm publish将其发布到npm注册表,并在合适的时候将您的标签推送到远程存储库


详细回答

关于执行确切命令,由于您在评论中表达了兴趣,以下是执行的确切命令:

将文件添加到暂存区:

git add /path/to/package.json

查看源代码

如果 lock 和 shrinkwrap 包文件也存在,则会像上面一样添加!

创建提交:

git commit -m {version message}

查看源代码

至于标签的创建:

git tag {version no.} -am {version message}

或者如果签名已经开启:

git tag {version no.} -sm {version message}

查看源代码

参考版本信息是可选的,如果从CLI输入中省略它,则默认为版本号的值。


1
我更感兴趣的是它如何与git交互。它为您执行哪些git命令? - jwerre
@jwerrre 我现在已经将这些添加到我的答案中。 - Peter Reid
虽然对大多数人来说可能很明显,但我还是要明确指出,在运行npm version {version_type} -m {version message}之前,使用git add .添加到暂存区的任何文件也会被提交。 - Jacopo Tedeschi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接