npm 版本如何工作?

How does npm version work?

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

If run in a git repo, it will also create a version commit and tag.

这是否意味着我不必 运行 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

你的理解基本正确

当您执行 npm version 命令时,将完成以下操作:

  1. 按照 package.json
  2. 中的指示修改包版本
  3. 创建一个提交,仅包含对 package.json 的更新,并在调用 npm version.
  4. 时指定消息
  5. 创建一个 git 标签

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


长答案

至于您通过评论表示对此感兴趣时我们执行的确切命令:

正在将文件添加到暂存区:

git add /path/to/package.json

See source.

如果 lock 和 shrinkwrap 包文件也存在,它们也会按上述方式添加!

创建提交:

git commit -m {version message}

See source.

关于标签的创建:

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

或者如果打开签名:

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

See source.

作为参考,version message 是可选的,如果它从 CLI 输入中排除,那么它将默认具有 version no. 的值。