引言
GitHub 怎么用?Issue 还能通过 Commit 来同步关闭?版本号是怎么定义的?如何自动发行版本?Commit 还有公约和规范?怎样做持续构建?如何在提交之前就做测试?测试覆盖率是什么?……
也许在工作中您会遇到诸如此类的问题,不论您是菜鸟还是老手,但愿这篇文章能让你在其中找到一些有价值或可借鉴的东西,这源自一个教我学会「如何编写一个 JS 开源库」的实践项目,同时也让我领悟了许多开源项目的工程管理概念、思路及方法,包括 版本管理、测试编写、自动版本发行、代码提交公约、持续构建(CI)、提交前测试、测试覆盖率及其报告 等,总体感觉受益匪浅,在此对教程原文[1]表示感谢,并决定将视频中的大量知识通过写作记录下来,在学习过程中我也加入了一些自己的思考,将视频内容转换成了更通俗的语言,没时间看视频的朋友兴许可以瞧瞧这里,对于简单的技能可以跳过,相关技能的章节已做了电梯,可以直达进行阅读。注意:在您阅读任何技能章节之前建议您先看看项目背景,它非常简单,但它对您理解后面的内容很有帮助。
它让我学会了以下 新技能(√):
- 【技能 1】账户建立:建立 GitHub 及 npmjs 账号
- 【技能 2】账户配置:配置 NPM,并构建第一个库
- 【技能 3】代码提交:提交开源库至 GitHub
【技能 3.1】免密登录:无需每次输入密码登录 Linux 主机 - 【技能 4】库发布:将开源库发布到 NPM Repo
- 【技能 5】版本管理:包括版本号定义,版本标签及版本发行
【技能 5.1】版本号定义:版本号每个数字的意义
【技能 5.2】版本标签:为版本加标签发布至 GitHub
【技能 5.3】版本发行:发布一个版本至 NPM - 【技能 6】单元测试:利用 Mocha 和 Chai 建立单元测试
- 【技能 7】自动版本发行:利用 semantic-release 自动化发行
- 【技能 8】代码提交公约:利用 commitizen 编写提交公约
- 【技能 9】持续构建(CI):利用 TravisCI 持续构建
- 【技能 10】提交前测试:利用 ghooks 做提交前自动化测试
- 【技能 11】测试覆盖率1:利用 Istanbul 做代码覆盖
- 【技能 12】测试覆盖率2:添加代码覆盖率报告
- 【技能 13】GH特效:在 README 中添加徽章
- 【技能 14】ES6支持1:添加 ES6 支持
- 【技能 15】ES6支持2:使用 Mocha & Babel 对测试添加 ES6 支持
部分技能章节还在更新中,敬请期待
如果您对这篇文章感兴趣,请前往 GitHub 页阅读(https://github.com/DotHide/starwars-names),我将在那里做持续更新,如果您觉得本文有用,请您顺手赏颗⭐️,非常感谢~