黑人生命也是命

Grunt 部落格

Grunt 1.4.0 發布

Grunt 團隊很榮幸地宣布 Grunt 1.4.0 發布。

此版本由 @vladikoff 和貢獻者製作

以及更多!


以下是變更內容

您可以在 npmGitHub 找到 Grunt。

Grunt 1.2.0 發布

Grunt 團隊很榮幸地宣布 Grunt 1.2.0 發布。

此版本由 @vladikoff 和貢獻者製作

以及更多!


以下是變更內容

  • 允許使用位於任何對 Node.js 和 NPM 可見位置的 Grunt 外掛程式,而不是直接位於對這些外掛程式具有開發依賴項目的套件內的 node_modules。(公關:https://github.com/gruntjs/grunt/pull/1677
  • 從依賴項中移除 coffeescript。為了簡化轉換,如果 coffeescript 仍存在,Grunt 將嘗試載入它。如果不存在,且使用者載入 CoffeeScript 檔案,Grunt 將印出有用的錯誤訊息,指出應將 coffeescript 套件安裝為開發依賴項。這比完全刪除需求更為使用者友善,但透過最新的 grunt-cli,使用者可以簡單地使用 grunt --require coffeescript/register 來執行此操作。(公關:https://github.com/gruntjs/grunt/pull/1675
  • 公開 Grunt 選項金鑰,以方便使用。(公關:https://github.com/gruntjs/grunt/pull/1570
  • 避免在極長的命令名稱上產生無限迴圈。(公關:https://github.com/gruntjs/grunt/pull/1697
  • 也包含依賴項更新。

您可以在 npmGitHub 找到 Grunt。

Grunt 1.1.0 發布

Grunt 團隊很榮幸地宣布 Grunt 1.1.0 發布。

此版本由 @vladikoff@shama 製作。


以下是變更內容

  • 更新至 mkdirp ~1.0.3
  • 僅支援 Node >= 8 版本

您可以在 npmGitHub 找到 Grunt。

Grunt CLI 1.3.0 發布

Grunt 團隊很榮幸地宣布發布 Grunt CLI 1.3.0

npm install grunt-cli -g

此版本由 @shama@vladikoff@Arkni@phated 和所有 Liftoff 貢獻者 共同完成。


此版本意義重大,因為它現在允許您使用您偏好的語言撰寫 Gruntfile。以前,Gruntfile 預設只能使用 JavaScript 或 CoffeeScript 撰寫。

使用 >= 1.3.0,如果您想使用 TypeScript 撰寫 Gruntfile,請將 Gruntfile 重新命名為以適當的副檔名結尾:Gruntfile.ts,並安裝適當的直譯器,npm install typescript

現在執行指令 grunt 將根據相應情況對 Gruntfile 進行直譯。

另一個範例,如果您想使用 Babel 撰寫 Gruntfile,請將 Gruntfile 重新命名為 Gruntfile.babel.js,並執行 npm install babel

預設情況下,Grunt CLI 可以直譯許多熱門的檔案副檔名,這要歸功於 interpret,包括

  • Gruntfile.babel.js -> npm install babel
  • Gruntfile.buble.js -> npm install buble
  • Gruntfile.coffee -> npm install coffeescript
  • Gruntfile.coffee.md -> npm install coffeescript
  • Gruntfile.csv -> npm install require-csv
  • Gruntfile.ini -> npm install require-ini
  • Gruntfile.json
  • Gruntfile.ls -> npm install livescript
  • Gruntfile.ts -> npm install typescript
  • Gruntfile.yaml -> npm install require-yaml

如果 Grunt CLI 不支援您偏好的語言,您可以使用 --require 選項來新增支援

grunt --require myscript/register

然後 Grunt 將需要您的自訂模組來直譯 Gruntfile。

這一切都歸功於 Grunt CLI 現在使用 Liftoff 執行。

CoffeeScript

以前 Gruntfiles 可以預設以 CoffeeScript 編寫。該版本的 CoffeeScript 已鎖定至 ~1.10.0,且未來也將維持鎖定。

依賴 Gruntfile.coffee 檔案自動解譯現已不建議使用。

如果您的 Gruntfile 以 CoffeeScript 編寫,請另外執行 npm install coffeescript --save-dev。這將允許您使用您偏好的 CoffeeScript 版本,而不會鎖定至與 Grunt 安裝的版本。在 Grunt 的下一個主要版本中,CoffeeScript 相依性將被移除,且將需要另外 npm install coffeescript 才能以 CoffeeScript 編寫 Gruntfiles。

Grunt 1.0.0 已發布

Grunt 團隊很榮幸地宣布 Grunt 1.0.0 已發布。

此版本由 @shama@vladikoff@jkaussieskater@dmethvin 共同完成。

也要感謝 @XhmikosR@AurelioDeRosa@Arkni@arithmetric@ascripcaru 的貢獻。

請注意,Grunt 1.0.0 將不再支援 Node.js v0.8。

我們請您測試此版本,並 回報您遇到的任何問題

立即使用以下方式更新至 Grunt 1.0.0

npm install [email protected] --save-dev

請閱讀 RC1 部落格文章,以取得有關 Grunt 1.0 版本變更的更多詳細資料。

對等相依性

如果您有 Grunt 外掛程式,且該外掛程式在 package.jsonpeerDependencies 區段中包含 grunt,我們建議標記為 "grunt": ">=0.4.0"。否則,對於 npm@2 使用者,[email protected] 在嘗試安裝您的外掛程式時將收到嚴重錯誤,而 npm@3 使用者將收到警告。我們已發出超過兩千個拉取請求至現有的外掛程式,以進行此變更。

我們請您發送拉取請求至您最喜歡的外掛程式,並請他們更新 package.jsonpeerDependencies 區段。

1.0.0 的變更

  • 防止非同步回呼多次呼叫。拉取 #1464。
  • 更新 jQuery Foundation 的著作權並移除多餘的標頭。修正 #1478。
  • 更新 glob 至 7.0.x。修正 #1467。
  • 移除重複的 BOM 剝離程式碼。Pull #1482。
  • 更新至最新的 cli ~1.2.0
  • 確保安裝時會建立 grunt bin。

RC1 中的變更

  • coffee-script 已升級至 ~1.10.0,這可能會在使用語言與外掛和 Gruntfiles 時造成重大變更。
  • nopt 已升級至 ~3.0.6,已修正許多問題,包括傳遞多個引數和將數字視為選項。請注意,先前 --foo bar 用於將值 'bar' 傳遞至選項 foo。現在,它會將選項 foo 設為 true 並執行任務 bar
  • glob 已升級至 ~6.0.4minimatch 已升級至 ~3.0.0。現在,結果會使用 grunt.file.expandMapping() 預設排序。如果您不希望結果排序,請傳遞 nosort: true 選項。
  • lodash 已升級至 ~4.3.0。已進行許多變更。其中直接影響 Grunt 的變更包括 grunt.util._.template() 會傳回一個編譯函式,而 grunt.util._.flatten 不再深度扁平化。grunt.util._ 已過時,我們強烈建議您 npm install lodashvar _ = require('lodash') 以使用 lodash。請參閱 lodash 變更日誌以取得變更的完整清單:https://github.com/lodash/lodash/wiki/Changelog
  • iconv-lite 已升級至 ~0.4.13,並預設剝離 BOM。
  • js-yaml 已升級至 ~3.5.2,可能會影響 grunt.file.readYAML。我們建議您 npm install js-yaml 並直接使用 var YAML = require('js-yaml') 以防未來發生不建議使用的情況。
  • 檔案 mode 選項可以傳遞至 grunt.file.write()
  • Done, without errors. 已變更為 Done. 以避免因 errors 一詞而錯誤失敗。

正如我們先前所提,我們也正在尋找所有 Grunt 儲存庫 的貢獻者,並願意指導您以取得更多開放原始碼經驗。

Grunt 1.0.0 rc1 已發布

Grunt 團隊很榮幸地宣布 1.0.0 的第一個候選版本。

此版本由 @shama@vladikoff@jkaussieskater 製作。獲得 jQuery 基金會的支持,特別是 @dmethvin@aulvi

也要感謝 @XhmikosR@paladox@FredyC@sindresorhus@mrjoelkemp 等人的貢獻。

此版本專注於修正重大問題,並改善在 Windows、OSX 和 Linux 上使用 Node.js v0.10、v0.12、v4.0、v5.0 和 io.js 的支援。我們請您測試 rc1回報您遇到的任何問題

npm install [email protected] --save-dev

請注意,Grunt 1.0.0 將不再支援 Node.js v0.8。

對等相依性

如果您有 Grunt 外掛程式,其中包含 package.jsonpeerDependencies 區段中的 grunt,我們建議標記為 "grunt": ">=0.4.0"。否則,當 [email protected] 發佈時,npm@2 使用者會在嘗試安裝您的外掛程式時收到重大錯誤,而 npm@3 使用者會收到警告。

請注意,自 npm@3 起,對使用者不再安裝對等相依性。Grunt 外掛程式的使用者預期會在安裝任何 Grunt 外掛程式時,同時 npm install grunt --save-dev

我們請您發送拉取請求至您最喜歡的外掛程式,並請他們更新 package.jsonpeerDependencies 區段。

徵求意見

我們建立了一個 新儲存庫,以鼓勵有興趣塑造 Grunt 未來的社群成員提交 RFC。

提交 RFC 將讓您正式提出對 Grunt 的重大變更,並從核心團隊和社群徵求回饋。

積極的提案將有助於描繪 Grunt 的未來路線圖,並希望加速社群貢獻到未來的 Grunt 發行版本。

npm 腳本

我們現在將 grunt-cli 安裝為 grunt 的一部分。許多使用者不希望執行 npm install grunt-cli -g 的額外步驟。為了更符合 Node.js 的慣用語法,您現在可以 npm install grunt --save-dev,然後將 Grunt 包含在您的 npm 腳本中。

{
  "scripts": {
    "grunt": "grunt"
  }
}

您的使用者現在只需 npm installnpm run grunt 即可執行您的 Gruntfile.js

npm >= 2.0.0 的使用者也可以傳遞任務和選項:npm run grunt -- task --option=foo,這等同於 grunt task --option=foo

如果您想要電腦上的 grunt 指令,請繼續 npm install grunt-cli -g 並像以前一樣使用。

API 變更

請注意,某些 API 已變更,保證重大版本更新

  • coffee-script 已升級至 ~1.10.0,這可能會在使用語言與外掛和 Gruntfiles 時造成重大變更。
  • nopt 已升級至 ~3.0.6,已修正許多問題,包括傳遞多個引數和將數字視為選項。請注意,先前 --foo bar 用於將值 'bar' 傳遞至選項 foo。現在,它會將選項 foo 設為 true 並執行任務 bar
  • glob 已升級至 ~6.0.4minimatch 已升級至 ~3.0.0。現在,結果會使用 grunt.file.expandMapping() 預設排序。如果您不希望結果排序,請傳遞 nosort: true 選項。
  • lodash 已升級至 ~4.3.0。已進行許多變更。其中直接影響 Grunt 的變更包括 grunt.util._.template() 會傳回編譯函式,而 grunt.util._.flatten 不再深度扁平化。grunt.util._ 已不再使用,我們強烈建議您 npm install lodashvar _ = require('lodash') 以使用 lodash。請參閱 lodash 變更紀錄以取得變更的完整清單:https://github.com/lodash/lodash/wiki/Changelog
  • iconv-lite 已升級至 ~0.4.13,並預設剝離 BOM。
  • js-yaml 已升級至 ~3.5.2,可能會影響 grunt.file.readYAML。我們建議您 npm install js-yaml 並直接使用 var YAML = require('js-yaml') 以防未來發生不建議使用的情況。
  • 檔案 mode 選項可以傳遞至 grunt.file.write()
  • Done, without errors. 已變更為 Done. 以避免因 errors 一詞而錯誤失敗。

我們鼓勵您試用此版本。

我們也正在尋找所有 Grunt 儲存庫 的貢獻者,並願意指導您以取得更多開源經驗。

Grunt 0.4.5 已發布

Grunt 0.4.5 現已在 npm 上提供。

感謝 Gary BurgessJames SmithCarlos Mantilla 提供的修補程式。此外,也感謝 Vlad Filippov 協助分類問題、排除 Windows CI 測試問題,以及彙整變更紀錄。

在此版本中,我們已關閉約十幾個問題,新增廣受要求的 grunt.task.existsgrunt.config.merge 方法,並透過 AppVeyor 設定 Windows CI 測試。此外,記錄 API 已拆分為獨立的模組 grunt-legacy-log,以利於維護。

如需變更的完整清單,請參閱 0.4.5 變更紀錄

此外,我們已接受許多 Grunt contrib 外掛程式 的修補程式,並感謝 Kevin MårtenssonAlexander FutekovShinnosuke WatanabeShane DanielArtem SapeginChristoph PojerZhang YichaoJevon WrightJacob LauritzenXhmikosREdan Schwartz 的貢獻。

盡情使用 Grunt!

Grunt 0.4.4 已發布

Grunt 0.4.4 現已在 npm 上提供。

此版本修正了 0.4.3 版本中引入的 回歸

在此處查看變更紀錄 here

Grunt 0.4.3 發布

Grunt 0.4.3 現已在 npm 上提供。

這主要是一個修正錯誤的版本。感謝 Jonathan KrausePatrickJSJason CustFabio CrisciJames M. GreeneMike Pennisi 的協力要求。

除了關閉超過 30 個問題外,我們已將 grunt.util 萃取到 自己的模組 中。如 0.4.2 版本中所述,我們正在逐步淘汰 grunt.util.* API。使用這些 API 的工作開發人員應更新其外掛程式,以使用 grunt-legacy-util README 中建議的函式庫。您可以直接使用 grunt-legacy-util 作為權宜之計,但我們將不再支援它。

如需變更的完整清單,請參閱 0.4.3 變更紀錄 在此處

盡情使用 Grunt!

Grunt 0.4.2 發布

Grunt 0.4.2 現已在 npm 上提供。

此版本應可解決 Windows 開發人員的許多問題,例如管線重新導向、主控台輸出和 BOM 保留。

除了修正許多錯誤外,我們已針對 Grunt 中的外部依賴項做出一些未來決策。這些外部函式庫已淘汰,現在應視為 npm 模組的要求:

  • 使用 glob 取代 grunt.file.glob
  • 使用 minimatch 取代 grunt.file.minimatch
  • 使用 findup 取代 grunt.file.findup
  • 使用 lodash 取代 grunt.util._
  • 使用 underscore.string 取代 grunt.util._.str
  • 使用 hooker 取代 grunt.util.hooker
  • 使用 async 取代 grunt.util.async
  • 使用 getobject 取代 grunt.util.namespace

如果您想在工作中使用這些外部函式庫,請使用 npm install <module> --save-dev 將它們安裝為 Grunt 或任何 Grunt 外掛程式。例如,如果您之前使用 grunt.util._,現在您將需要使用 npm install lodash --save-dev 來取得 Lo-Dash

// Then change this code:
var newArr = grunt.util._.map(arr, fn);

// To this:
var _ = require('lodash');
var newArr = _.map(arr, fn);

團隊也正在尋找有關 Grunt 未來的回饋,因此如果您有時間,請加入 0.5.0 里程碑 討論

查看 0.4.2 變更記錄 在此

盡情使用 Grunt!

Grunt 0.4.1 發布

Grunt 0.4.1 現可從 npm 取得。

此修補程式版本修正了 Node.js v0.10.0 最近版本中出現的許多小問題,最顯著的是由於 path API 的變更。如果您想在專案中使用最新版本的 Node.js,您應該將這些專案的 package.json 檔案中的 Grunt 更新為 ~0.4.1

無論如何,Grunt 仍可搭配 Node.js v0.8.x 使用,因此如果您尚未升級至 Node.js v0.10.0,您不需要更新。

除了 Node.js v0.10.0 變更之外,我們也利用這個機會修正了許多其他小問題,例如在產生子處理序時正確處理多位元組 I/O,並確保 Gruntfile 名稱不區分大小寫。如需變更的完整清單,請參閱 v0.4.0 - v0.4.1 變更記錄

Grunt 0.4.0 發布

截至今天早上,Grunt v0.4 final 已在 npm 上架!如需有關此版本的詳細說明,請參閱 @tkellenBocoup 部落格 上的文章。

最重要的內容

  1. Grunt 不再內建任務。它們已被萃取為由官方維護的獨立外掛程式,並置於 grunt-contrib 名稱空間中。請參閱我們網站上的 外掛程式清單 以取得更多詳細資料。
  2. Grunt 不再內建二進位檔。為了取得 grunt 指令,請使用 npm install -g grunt-cli 全域安裝 grunt-cli。此套件會在本地端安裝至您的專案後,執行任何版本的 Grunt(包括 0.3x)。

未來

Grunt v0.5 將內建對稱為 node-task 的新外掛程式格式提供支援。它定義了一個無狀態、基於承諾、發出事件的 API,且不依賴 Grunt。它有一個真實的規格,而 Grunt 團隊正與前端開發人員社群合作,希望相容的模組可與陽光下的每個任務執行器相容。

Grunt 繼續前進

如果您想進一步了解 Grunt,請閱讀我們的 入門指南,並查看您可以 設定任務 的所有方法。

將外掛程式更新至 Grunt 0.4

如果您的外掛程式尚未與 Grunt 0.4 相容,請考慮更新。如需變更的概觀,請參閱我們的遷移指南

如果您想在星期一前針對 Grunt 的最終版本進行開發,請在專案中指定 "grunt": "0.4.0rc8" 作為 devDependency。在星期一發布後,您將可以使用 "grunt": "~0.4.0" 來實際發布您的外掛程式。如果您依賴 grunt-contrib 系列中的任何外掛程式,請參閱我們的候選版本清單以取得相容版本。所有這些版本都將在 Grunt 0.4 發布時更新為最終狀態。

此外,為了減少開發人員社群中重複的工作和分散,您可以檢閱grunt-contrib系列外掛程式,看看您的功能是否與它們有顯著的重疊。Grunt-contrib 由 40 多位貢獻者共同維護,我們很樂意討論您想做的任何新增功能。

最後,我們正在開發一種不依賴 Grunt 的新任務格式:稱為node-task。一旦完成,將會進行一次轉換,然後我們將不再要求您升級外掛程式來支援我們的變更。在此之前,感謝您的耐心!

如果您對如何進行有任何疑問,請在此處回覆,或在 #grunt on irc.freenode.net 加入我們。

謝謝,我們非常感謝您的工作!