貢獻前準備
開發環境配置
javascript-state-machine項目基於以下工具構建:
- Webpack 2:模塊打包工具
- UglifyJS2:代碼壓縮工具
- Ava:測試框架
首先克隆項目倉庫:
git clone https://gitcode.com/gh_mirrors/ja/javascript-state-machine
cd javascript-state-machine
安裝依賴:
npm install
項目核心文件結構:
src/ # 源代碼目錄
test/ # 測試文件目錄
lib/ # 打包後的庫文件
docs/ # 文檔目錄
package.json # 項目配置文件
webpack.config.js # Webpack配置文件
開發流程
代碼修改規範
- 源代碼採用ES5語法編寫,不使用Babel轉譯
- 所有功能變更需先在issues中討論
- 遵循項目現有代碼風格
測試編寫
所有代碼變更必須包含對應的測試用例,測試文件放在test/目錄下。項目測試文件組織如下:
- test/basics.js:基礎功能測試
- test/transitions.js:狀態轉換測試
- test/lifecycle.js:生命週期測試
- test/plugin/:插件功能測試
運行測試命令:
npm test
構建項目
代碼修改完成後,需重新構建發行文件:
npm run build
該命令會執行以下操作:
- 運行Webpack打包模塊(配置文件:webpack.config.js)
- 壓縮生成的JS文件
PR提交步驟
提交前檢查清單
- 所有測試通過(
npm test) - 重新構建發行文件(
npm run build) - 添加/更新相關文檔(放在docs/目錄)
-
PR提交流程
- Fork項目倉庫到個人賬號
- 創建特性分支:
git checkout -b feature/your-feature-name - 提交修改:
git commit -m "清晰描述修改內容" - 推送到個人倉庫:
git push origin feature/your-feature-name - 在GitCode上創建Pull Request
PR審核標準
- 代碼質量:遵循項目編碼規範
- 測試覆蓋:包含完整的測試用例
- 文檔完善:更新相關文檔説明
- 兼容性:確保與現有功能兼容
常用開發命令
|
命令 |
功能描述 |
|
|
運行所有測試並生成覆蓋率報告 |
|
|
構建發行文件 |
|
|
監聽文件變化並自動運行測試 |
|
|
僅執行Webpack打包 |
|
|
僅執行代碼壓縮 |
貢獻者注意事項
- 貢獻代碼即表示同意將代碼版權轉讓給項目
- 所有PR將由項目維護者審核
- 重大功能變更可能需要較長審核時間
- 請參考docs/contributing.md獲取更多詳細信息
示例:添加新插件的PR流程
- 在src/plugin/目錄下創建新插件文件
- 在test/plugin/目錄添加測試文件
- 更新docs/state-machine-factory.md文檔
- 運行
npm test確保測試通過 - 運行
npm run build構建新插件 - 提交PR,標題格式:
[Plugin] Add xxx plugin
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。