GitHub 怎麼用?Issue 還能經過 Commit 來同步關閉?版本號是怎麼定義的?如何自動發行版本?Commit 還有公約和規範?怎樣作持續構建?如何在提交以前就作測試?測試覆蓋率是什麼?……git
也許在工做中您會遇到諸如此類的問題,不論您是菜鳥仍是老手,希望這篇文章能讓你在其中找到一些有價值或可借鑑的東西,這源自一個教我學會「如何編寫一個 JS 開源庫」的實踐項目,同時也讓我領悟了許多開源項目的工程管理概念、思路及方法,包括 版本管理、測試編寫、自動版本發行、代碼提交公約、持續構建(CI)、提交前測試、測試覆蓋率及其報告 等,整體感受受益不淺,在此對教程原文[1]表示感謝,並決定將視頻中的大量知識經過寫做記錄下來,在學習過程當中我也加入了一些本身的思考,將視頻內容轉換成了更通俗的語言,沒時間看視頻的朋友興許能夠瞧瞧這裏,對於簡單的技能能夠跳過,相關技能的章節已作了電梯,能夠直達進行閱讀。注意:在您閱讀任何技能章節以前建議您先看看項目背景,它很是簡單,但它對您理解後面的內容頗有幫助。github
它讓我學會了如下 新技能(√):npm
【技能 1】帳戶創建:創建 GitHub 及 npmjs 帳號ide
【技能 2】帳戶配置:配置 NPM,並構建第一個庫單元測試
【技能 3】代碼提交:提交開源庫至 GitHub學習
【技能 3.1】免密登陸:無需每次輸入密碼登陸 Linux 主機測試
【技能 5】版本管理:包括版本號定義,版本標籤及版本發行教程
【技能 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),我將在那裏作持續更新,若是您以爲本文有用,請您順手賞顆⭐️,很是感謝~