Grunt 部落格
Grunt 1.4.0 發布張貼於 2021 年 4 月 22 日
Grunt 團隊很榮幸地宣布 Grunt 1.4.0
發布。
此版本由 @vladikoff 和貢獻者製作
以及更多!
以下是變更內容
- 修正生產和開發依賴項目的安全性問題
- Liftup/Liftoff 升級重大變更。請更新腳本,改用 --preload 取代 --require。參考:https://github.com/js-cli/js-liftoff/commit/e7a969d6706e730d90abb4e24d3cb4d3bce06ddb。
Grunt 1.2.0 發布張貼於 2020 年 7 月 03 日
Grunt 團隊很榮幸地宣布 Grunt 1.2.0
發布。
此版本由 @vladikoff 和貢獻者製作
- philz - https://github.com/philz
- Brian Lim - https://github.com/bhldev
- micellius - https://github.com/micellius
以及更多!
以下是變更內容
- 允許使用位於任何對 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)
- 也包含依賴項更新。
Grunt 1.1.0 發布張貼於 2020 年 3 月 16 日
Grunt 團隊很榮幸地宣布 Grunt 1.1.0
發布。
此版本由 @vladikoff 和 @shama 製作。
以下是變更內容
- 更新至 mkdirp ~1.0.3
- 僅支援 Node >= 8 版本
Grunt CLI 1.3.0 發布發布於 2018 年 8 月 15 日
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 已發布於 2016 年 4 月 04 日張貼
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.json
的 peerDependencies
區段中包含 grunt
,我們建議標記為 "grunt": ">=0.4.0"
。否則,對於 npm@2 使用者,[email protected]
在嘗試安裝您的外掛程式時將收到嚴重錯誤,而 npm@3 使用者將收到警告。我們已發出超過兩千個拉取請求至現有的外掛程式,以進行此變更。
我們請您發送拉取請求至您最喜歡的外掛程式,並請他們更新 package.json
的 peerDependencies
區段。
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.4
,minimatch
已升級至~3.0.0
。現在,結果會使用grunt.file.expandMapping()
預設排序。如果您不希望結果排序,請傳遞nosort: true
選項。lodash
已升級至~4.3.0
。已進行許多變更。其中直接影響 Grunt 的變更包括grunt.util._.template()
會傳回一個編譯函式,而grunt.util._.flatten
不再深度扁平化。grunt.util._
已過時,我們強烈建議您npm install lodash
並var _ = require('lodash')
以使用lodash
。請參閱 lodash 變更日誌以取得變更的完整清單:https://github.com/lodash/lodash/wiki/Changelogiconv-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 已發布發布於 2016 年 2 月 11 日
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.json
的 peerDependencies
區段中的 grunt
,我們建議標記為 "grunt": ">=0.4.0"
。否則,當 [email protected]
發佈時,npm@2 使用者會在嘗試安裝您的外掛程式時收到重大錯誤,而 npm@3 使用者會收到警告。
請注意,自 npm@3 起,對使用者不再安裝對等相依性。Grunt 外掛程式的使用者預期會在安裝任何 Grunt 外掛程式時,同時 npm install grunt --save-dev
。
我們請您發送拉取請求至您最喜歡的外掛程式,並請他們更新 package.json
的 peerDependencies
區段。
徵求意見
我們建立了一個 新儲存庫,以鼓勵有興趣塑造 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 install
和 npm 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.4
,minimatch
已升級至~3.0.0
。現在,結果會使用grunt.file.expandMapping()
預設排序。如果您不希望結果排序,請傳遞nosort: true
選項。lodash
已升級至~4.3.0
。已進行許多變更。其中直接影響 Grunt 的變更包括grunt.util._.template()
會傳回編譯函式,而grunt.util._.flatten
不再深度扁平化。grunt.util._
已不再使用,我們強烈建議您npm install lodash
並var _ = require('lodash')
以使用lodash
。請參閱 lodash 變更紀錄以取得變更的完整清單:https://github.com/lodash/lodash/wiki/Changelogiconv-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 已發布於 2014 年 5 月 12 日發布
Grunt 0.4.5 現已在 npm 上提供。
感謝 Gary Burgess、James Smith 和 Carlos Mantilla 提供的修補程式。此外,也感謝 Vlad Filippov 協助分類問題、排除 Windows CI 測試問題,以及彙整變更紀錄。
在此版本中,我們已關閉約十幾個問題,新增廣受要求的 grunt.task.exists 和 grunt.config.merge 方法,並透過 AppVeyor 設定 Windows CI 測試。此外,記錄 API 已拆分為獨立的模組 grunt-legacy-log,以利於維護。
如需變更的完整清單,請參閱 0.4.5 變更紀錄。
此外,我們已接受許多 Grunt contrib 外掛程式 的修補程式,並感謝 Kevin Mårtensson、Alexander Futekov、Shinnosuke Watanabe、Shane Daniel、Artem Sapegin、Christoph Pojer、Zhang Yichao、Jevon Wright、Jacob Lauritzen、XhmikosR 和 Edan Schwartz 的貢獻。
盡情使用 Grunt!
Grunt 0.4.4 已發布於 2014 年 3 月 14 日發布
Grunt 0.4.4 現已在 npm 上提供。
此版本修正了 0.4.3 版本中引入的 回歸。
在此處查看變更紀錄 here。
Grunt 0.4.3 發布張貼於 2014 年 3 月 07 日
Grunt 0.4.3 現已在 npm 上提供。
這主要是一個修正錯誤的版本。感謝 Jonathan Krause、PatrickJS、Jason Cust、Fabio Crisci、James M. Greene 和 Mike 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 發布張貼於 2013 年 11 月 21 日
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 發布於 2013 年 3 月 13 日發布
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 發布於 2013 年 2 月 18 日發布
截至今天早上,Grunt v0.4 final 已在 npm 上架!如需有關此版本的詳細說明,請參閱 @tkellen 在 Bocoup 部落格 上的文章。
最重要的內容
- Grunt 不再內建任務。它們已被萃取為由官方維護的獨立外掛程式,並置於 grunt-contrib 名稱空間中。請參閱我們網站上的 外掛程式清單 以取得更多詳細資料。
- 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於 2013 年 2 月 15 日發布
如果您的外掛程式尚未與 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
加入我們。
謝謝,我們非常感謝您的工作!