前端自动化部署的深度实践(1)

什么是conventional-changelog


Generate a changelog from git metadata

根据git元数据生成更新日志,而conventional-changelog-cli则是相关的命令行工具。

安装conventional-changelog-cli


npm install -g conventional-changelog-cli

初始化生成CHANGELOG.md


cd my-project

conventional-changelog -p angular -i CHANGELOG.md -s

以上命令是基于最后一次的Feature, Fix, Performance Improvement or Breaking Changes等类型的commit记录生成或更新CHANGELOG.md。如果你希望根据之前所有的commit记录生成完整的CHANGELOG.md,那么可以试试下面这条命令:

conventional-changelog -p angular -i CHANGELOG.md -s -r 0

工作流

======================================================================

代码添加到暂存区


这一步没有什么特殊,日常撸代码,然后将工作区的内容添加到暂存区。

git add .

规范commit message


一个规范的commit message一般分为三个部分Header,Body 和 Footer。Header包含type, scope, subject等部分,分别用于描述commit类型,影响范围,commit简述。Body则是详细描述,可以分多行写。Footer主要用于描述不兼容改动(Breaking Change)或者关闭issue(Closes #issue)。

格式如下:

():

举个栗子:

feat(支持自动部署): 结合conventional-changelog,配合部署脚本完成部署任务

conventional-changelog是一个很好的工具,用于自动生成changelog,再配上自定义的部署脚本,整个部署流程就显得更规范了

Breaking Change: 比较大的更新

Closes #315

其中,Header是必需的,BodyFooter可以省略。

大致了解规范后,就可以上工具了,这里我们用到的是commitizen

npm install -g commitizen

接着在项目根目录运行以下命令:

commitizen init cz-conventional-changelog --save --save-exact

运行成功后,package.json会新增如下内容:

“devDependencies”: {

“cz-conventional-changelog”: “^3.1.0”

},

“config”: {

“commitizen”: {

“path”: “./node_modules/cz-conventional-changelog”

}

}

git commit这一步用git cz替代cz就是指commitizen,通过交互式命令行完成commit操作。

PS D:\robin\frontend\spa-blog-frontend> git cz

cz-cli@4.0.3, cz-conventional-changelog@3.1.0

? Select the type of change that you’re committing: feat: A new feature

? What is the scope of this change (e.g. component or file name): (press enter to skip) 支持自动部署

? Write a short, imperative tense description of the change (max 86 chars):

(37) 结合conventional-changelog,配合部署脚本完成部署任务

? Provide a longer description of the change: (press enter to skip)

? Are there any breaking changes? No

? Does this change affect any open issues? No

[master ee41f35] feat(支持自动部署): 结合conventional-changelog,配合部署脚本完成部署任务

3 files changed, 15 insertions(+), 3 deletions(-)

处理版本号,更新CHANGELOG


接着我们要更新npm包的版本号,结合npm versionconventional-changelog使用,可以同时更新CHANGELOG.md

好的,我们先准备好脚本:

“scripts”: {

“start”: “vue-cli-service serve”,

“build”: “vue-cli-service build”,

“deploy”: “node deploy”,

“version”: “conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md”,

“postversion”: “npm run deploy”

}

根据实际版本情况选择更新patch/minor/major版本。假设我们更新的是minor版本号,那么操作命令如下:

npm version minor -m ‘特性版本更新’

执行这条命令会更新package.json中的version字段,

同时会执行conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md,更新CHANGELOG.md

执行完这条命令后,可以看到CHANGELOG.md已经被修改了。

CHANGELOG自动更新

npm钩子触发部署脚本


通过postversion钩子触发部署脚本node deploy,开始进行部署工作。deploy.js文件内容如下:

const { execFile } = require(‘child_process’);

const version = process.env.npm_package_version;

execFile(‘deploy.sh’, [version], { shell: true }, (err, stdout, stderr) => {

if (err) {

throw err;

}

console.log(stdout);

});

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
存中…(img-PD9NLBhv-1715892326512)]

[外链图片转存中…(img-Gj6dhTRu-1715892326512)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值