貢獻
有許多 Grunt 專案。
- grunt - 主要 Grunt 專案
- grunt-init - 獨立的 grunt-init 專案架構工具
- gruntjs.com - gruntjs.com 網站
- grunt-contrib 集合 - 所有 Grunt「contrib」外掛程式的集合
此外,每個個別的 grunt-contrib 外掛程式都是一個獨立的儲存庫,列於 gruntjs 組織首頁 上。每個儲存庫都有自己的維護人員,您可以透過查看最近的提交和推播輕鬆找到維護人員。只要在您有興趣的儲存庫中建立一個問題,然後 @提及
一位維護人員即可開始。
貢獻者授權協議
除了提供支援給其他使用者之外,大多數形式的貢獻都需要您簽署並提交一份與 jQuery 基金會的貢獻者授權協議(簡稱「CLA」)。
總而言之,CLA 聲明當您捐贈修正或文件時,您同時擁有您提交的程式碼,而 jQuery 基金會可以進一步將該程式碼授權給其他人。
提交 CLA 是單次行為,一旦完成,您就可以開始為所有 jQuery 基金會專案做出貢獻!不過,為了有效,您需要稍微了解貢獻者和提交者如何協調工作,因此參與並提出問題應該是您的第一步。
有關 CLA 的更多資訊,請閱讀 Alex Russell 的為什麼我需要簽署這個?。
想貢獻嗎?
如果您想貢獻,但不知道從何開始,這適合您。下方連結的問題標示為需要 PR,這表示它們需要一個拉取請求才能修復。選擇其中任何一個問題,並在您正在處理它們時務必留言。
- grunt-init - 貢獻指南應放入 contributing.md
- grunt-contrib-jade - 新增對 basedir 選項的支援
- grunt-init-gruntfile - 不會產生 package.json
- grunt-contrib-coffee - 支援 process 選項
- grunt - --gruntfile 參數與父目錄中斷
- grunt-contrib-compress - 新增 bzip2 支援
- grunt-contrib-jasmine - 加強記錄
- grunt-contrib-less 多個 src 檔案的 Sourcemaps
發布新版本
若要發布 grunt-contrib-*
外掛的新版本,請遵循下列步驟
- 查看外掛 GitHub 頁面,確認通過 Travis CI。
cd
進入外掛目錄。git pull
從master
分支拉取最新變更。rm -rf node_modules
移掉過時或舊的 node 模組。npm install
取得 node 模組的最新版本。- 執行
npm test
並確認所有測試在本地通過。 - 在
package.json
中調整版本。 - 更新 CHANGELOG.md
- 在外掛目錄中執行
grunt
。這會產生新的 README。 - 提交變更記錄、
package.json
和 README。 - 為新版本建立新的 git 標籤。使用下列格式作為標籤:
vX.Y.Z
。(例如v0.1.13
) - 將變更推送到
master
,將標籤推送到外掛儲存庫。 - 發布到 npm:
npm publish .
。如果您無法使用npm publish
,請請核心貢獻者之一為您發布。
非程式碼貢獻
如果您不喜歡寫程式碼,您仍然可以為專案做出貢獻!
- 您可以提交更新和改進至 文件。
- 提交文章和指南,它們也是 文件 的一部分。
- 透過在 StackOverflow、IRC 和 GitHub 上回答問題,協助 Grunt 使用者。
提交問題
如果某些事項不如您預期般運作,請閱讀 文件,特別是 入門 指南。如果您想與人聊天,進入 IRC discussing-grunt 並在那裡提出您的問題。
如果您有一個文件未涵蓋的問題,或想回報錯誤,確保問題獲得處理的最佳方式是在適當的問題追蹤器中提交問題。
- 如果 grunt、grunt-init、grunt-lib-??? 模組或特定 grunt-contrib-??? 外掛出現問題
- 請在該專案的議題追蹤器中提出議題。
- 如果您想貢獻新的外掛模組
- 請在 grunt-contrib 彙整議題追蹤器 中提出議題。我們並非接受所有外掛模組,但我們肯定會考慮您的外掛模組。
- 如果 網站 有問題
- 請在 gruntjs.com 網站議題追蹤器 中提出議題。
- 如果問題不屬於上述任何一項
- 請在 grunt 議題追蹤器 中提出議題,並告知我們您在那裡提出議題的原因。
簡化問題
嘗試將 您的程式碼簡化到重現問題所需的最低限度。這使得隔離和修復問題變得更容易(也更快)。
說明問題
如果我們無法重現問題,我們就無法修復它。請列出重現問題所需的確切步驟。包含您的作業系統、Node.js、grunt 等版本。包含相關日誌或範例程式碼。
討論 grunt
加入 freenode: IRC #grunt 頻道進行一般討論,或 #grunt-dev 進行核心和外掛模組開發討論。我們有一個機器人,應有盡有。
請勿傳送私人訊息。
修改 grunt
- 確保已安裝 grunt-cli(請參閱 入門 指南以取得更多資訊)
- 分岔並複製儲存庫。
- 檢出 master 分支(大部分 grunt/grunt-contrib 開發都在那裡進行)。
- 執行
npm install
以安裝所有 Grunt 相依性。 - 執行
npm uninstall grunt
,這將移除node_modules
中多餘的 Grunt,請參閱 npm 議題 3958 - 執行
grunt
以 Grunt grunt。
假設您沒有看到任何紅色,您就可以開始了。只要確保在進行任何變更後執行 grunt
,以確保沒有任何問題。
提交 pull request
- 請建立一個新的分支,請勿直接在
master
中作業。 - 針對您想做的變更,新增失敗的測試。執行
grunt
以查看測試失敗。 - 修復問題。
- 執行
grunt
以查看測試是否通過。重複步驟 2-4,直到完成。 - 更新文件以反映任何變更。
- 推送到您的 fork 並提交 pull 要求。
語法
- 兩個空格縮排。請勿在任何地方使用 tab。如果您需要在字串中使用 tab 字元,請使用
\t
。 - 沒有尾隨空白,markdown 檔案中強制換行除外。
- 請勿過度使用空白。
- 每個
var
陳述式中最多只能有一個指定。 - 使用單引號
'
界定字串,而非雙引號"
。 - 優先使用
if
和else
,而非「聰明」使用? :
條件式或||
、&&
邏輯運算子。 - 註解很棒。請將它們放在程式碼行之前,而非行尾。
- 如有疑問,請遵循您在來源中看到的慣例。
README
所有 grunt-contrib-* 外掛程式都使用grunt-contrib-internal建構README.md
和CONTRIBUTING.md
檔案。來源檔案位於對應的docs/
資料夾中。README 中的變更記錄會從CHANGELOG
檔案產生。
當提交對 README 檔案的變更時,請直接編輯來源檔案,而非 README 本身。