use*_*401 14 github githooks github-for-windows
在我们的项目中,我们经常忘记更新Package.json文件中的版本号.我们是一个AngularJS项目.在我们的包JSON文件中,我们指定了以下两个版本信息
"version": "1.0.7",
"devVersion": "1.0.4"
Run Code Online (Sandbox Code Playgroud)
在合并分支开发之前,我想要一个自动脚本来更新以上两个版本号.我在想Git Hooks会帮助我.
我在哪里可以找到钩子,我能够在.git文件夹下的本地仓库中看到钩子.我很困惑使用哪个钩子.在Google上搜索建议我必须在服务器上创建钩子.
我在哪里可以找到它们,我可以更新上面的两个键(版本和devVersion)?
请提示使用位置和挂钩,这样可以解决很多问题.
Ani*_*t3d 10
我正在使用husky和git-branch-is:
"scripts": {
...
"postmerge": "(git-branch-is master && npm version minor ||
(git-branch-is dev && npm --no-git-tag-version version patch)",
...
},
Run Code Online (Sandbox Code Playgroud)
阅读有关npm 版本的更多信息
Webpack 或 Vue.js
如果您使用的是 webpack 或 Vue.js,您可以使用自动注入版本 - Webpack 插件在 UI 中显示它
NUXT
在nuxt.config.js:
var WebpackAutoInject = require('webpack-auto-inject-version');
module.exports = {
build: {
plugins: [
new WebpackAutoInject({
// options
// example:
components: {
InjectAsComment: false
},
}),
]
},
}
Run Code Online (Sandbox Code Playgroud)
在您template的例如页脚中:
<p> All rights reserved © 2018 [v[AIV]{version}[/AIV]]</p>
Run Code Online (Sandbox Code Playgroud)
您有两种挂钩(都存在于任何.git / hooks文件夹中):服务器和客户端挂钩。
它们在“ 自定义Git-Git挂钩 ” 中列出
合并是一项本地操作,因此,如果您想在合并期间自动执行任何进程,则需要一个客户端挂钩,例如post-commit挂钩(意味着在创建合并提交后立即执行)。
如果您需要在合并之前更新该文件,则可以尝试执行pre-commit钩子,并检查合并是否正在进行(如果没有,则pre-commit钩子什么都不做,因为您只想在合并之前更新版本)。
您可以在此答案中看到生成文件的提交后挂钩的示例version.json。
如果是在节点中编写的,但是您可以在任何所需的脚本语言中编写钩子。
对于Husky来说,这非常简单:
{
"name": "demo-project",
"version": "0.0.3",
"husky": {
"hooks": {
"pre-commit": "npm --no-git-tag-version version patch && git add ."
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我放在git add .最后是因为更新包版本后,我们需要暂存它