哈囉哈囉,我是 Simon,來自 Yeoman 團隊。
在核心系統大約一個月沒有版本更新之後,我們很高興宣佈 yeoman-generator 0.17.0-pre 版本。我們的更新週期延後是因為這是個相當重大的更新版本!
首先,我們在 NPM 上以預發行的形式發佈 0.17.0-pre
。請確認您使用 npm install yeoman-generator --tag pre
進行安裝。
以下會說明主要變更的概觀。
組成性
如同我們在 2014 年藍圖中所述,組成性是我們的下一個主要核心功能。
組成性讓我們可以針對一般需求撰寫較小的基礎產生器,並讓產生器作者可以建置重新使用它們的高階產生器。這會讓工作和改進更集中。例如,我們只要一個 CSS 或 Bootstrap 產生器就夠了。其他所有產生器都能專注在各自的領域問題,並且仰賴基礎產生器來處理其他事項。
在 0.17 版本中,我們帶來兩項重大改進,以減輕組成性問題:執行迴圈和 composeWith
方式。
執行迴圈
在 Yeoman 中,產生器原型上的每個方式都一項任務,並且會以同步串列方式執行。在目前狀態下,產生器會執行它所有的方式,然後呼叫另一個僅會在那時執行的產生器。
為了允許產生器真正在並排執行,我們需要允許它們同時執行,而不是一個接著一個執行。
為了達成這個目的,我們實作一個執行迴圈,將任務註冊在特定優先順序。較高優先順序的任務會先執行,較低優先順序的任務會最後執行。
您可以在我們的 新文件 中閱讀有關執行迴圈的完整說明文件。這份文件仍處於開發階段,並會隨 0.17.0 版本完整發佈。
composeWith()
這個新方式很像先前的 invoke
方式。唯一的不同點是它會將組成的產生器加入執行迴圈。
您可以在我們的 新文件 中進一步瞭解 composeWith
。
享受測試您的產生器
製作產生器的單元測試會令人望而生畏。為了減輕痛苦,此版本包含新的測試輔助工具。這些輔助工具會建立一個 RunContext 物件,負責設定和為您執行產生器。
閱讀文件 以進一步瞭解它!
然後呢?
如您所見,這是個很重大的版本更新。執行迴圈並非破壞性更動,但如果名稱與某個優先順序「衝突」,可能會造成問題。
我們推出這個預發行版本,讓您可以在我們在 0.17 版本中把功能刻在石頭上之前進行測試,並提供盡可能多的意見回饋。請更新您的產生器,並告訴我們使用起來的狀況!
下次見!