在我做一个小的发布和标记它之前,我想更新这个包。Json来反映程序的新版本。

是否有编辑文件包的方法。json自动吗?

使用git预发布钩子会有帮助吗?


当前回答

我创建了一个工具,可以根据提交消息中的标记(称为更改类型)完成自动语义版本控制。这紧跟Angular提交消息约定和语义版本规范。

您可以使用此工具自动更改包中的版本。json使用npm CLI(这里描述)。

此外,它可以从这些提交创建变更日志,还提供了一个菜单(带有提交消息的拼写检查器),用于根据更改类型创建提交。我强烈建议你检查一下,阅读一下文档,看看用它可以完成的所有事情。

我编写了这个工具,因为我找不到任何可以满足CICD Pipeline自动化语义版本控制需求的工具。我宁愿关注实际的更改是什么,而不是版本应该是什么,这就是我的工具解决问题的地方。

有关该工具基本原理的更多信息,请参见此。

其他回答

正确的答案

要做到这一点,只需npm version patch =)

我的老答案

git中没有预先发布钩子。至少,man githooks没有表现出来。

例如,如果您正在使用git-extra (https://github.com/visionmedia/git-extras),您可以使用它实现的预发布钩子,如您可以在https://github.com/visionmedia/git-extras/blob/master/bin/git-release中看到的那样。它只需要一个.git/hook/pre-release.sh可执行文件来编辑你的包。json文件。提交、推送和标记将由git release命令完成。

如果你没有为git使用任何扩展,你可以写一个shell脚本(我将它命名为git-release.sh),然后你可以用这样的东西来别名git release:

Git配置——全局别名。释放”!Sh path/to/pre-release.sh $1'

你可以使用git release 0.4,它将执行路径/到/pre-release.sh 0.4。你的脚本可以编辑包。Json,创建标签并将其推送到服务器。

我用的是husky和git-branch-is:

从哈士奇v1+开始:

// package.json
{
  "husky": {
    "hooks": {
      "post-merge": "(git-branch-is master && npm version minor || 
  (git-branch-is dev && npm --no-git-tag-version version patch)",
    }
  }
}

在husky V1之前:

"scripts": {
  ...
  "postmerge": "(git-branch-is master && npm version minor || 
  (git-branch-is dev && npm --no-git-tag-version version patch)",
  ...
},

阅读更多关于npm版本

Webpack或Vue.js

如果你正在使用webpack或Vue.js,你可以在UI中使用自动注入版本- webpack插件来显示它

NUXT

在nuxt.config.js:

var WebpackAutoInject = require('webpack-auto-inject-version');

module.exports = {
  build: {
    plugins: [
      new WebpackAutoInject({
        // options
        // example:
        components: {
          InjectAsComment: false
        },
      }),
    ]
  },
}

例如在模板的页脚中:

<p> All rights reserved © 2018 [v[AIV]{version}[/AIV]]</p>

这是我通常对我的项目所做的:

npm version patch
git add *;
git commit -m "Commit message"
git push
npm publish

第一行,npm version patch,会将package.json中的补丁版本增加1 (x.x.1到x.x.2)。然后添加所有文件——包括package。Json,此时已被修改。 然后,通常的git commit和git push,最后是npm publish来发布模块。

我希望这是有意义的…

芝加哥商业交易所。

作为npm版本的一个补充,如果你想要一个版本碰撞但没有标记或一个新的提交,你可以使用——no-git-tag-version标记:

npm --no-git-tag-version version patch

https://docs.npmjs.com/cli/version

如果你用的是纱线,你可以用

yarn version patch

这将增加包。Json版本由补丁(0.0.x),提交,并标记它的格式为v0.0.0

同样,你可以使用——minor或——major来碰撞minor或major版本

在推到git时,确保你也推了带有——follow-tags的标签

git push --follow-tags

您还可以为它创建一个脚本

    "release-it": "yarn version --patch && git push --follow-tags"

只需输入yarn release-it即可运行