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 月 3 日
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 目录。(PR:https://github.com/gruntjs/grunt/pull/1677)
- 从依赖项中移除了 CoffeeScript。为了简化过渡,如果 CoffeeScript 仍然存在,Grunt 将尝试加载它。如果不存在,并且用户加载了 CoffeeScript 文件,Grunt 将会打印一条有用的错误信息,指示用户应该将 CoffeeScript 包作为开发依赖项安装。这比完全删除 require 要友好得多,但使用最新的 grunt-cli 可以轻松实现,因为用户可以使用 grunt --require coffeescript/register。(PR:https://github.com/gruntjs/grunt/pull/1675)
- 公开了 Grunt 选项键以方便使用。(PR:https://github.com/gruntjs/grunt/pull/1570)
- 避免了在命令名称过长时出现无限循环。(PR: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
。
默认情况下,由于使用了 interpret,Grunt CLI 可以解释许多流行的文件扩展名,包括
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 将会 require 您的自定义模块来解释 Gruntfile。
这一切都要归功于 Grunt CLI 现在使用 Liftoff 运行。
CoffeeScript
以前,默认情况下可以使用 CoffeeScript 编写 Gruntfile。该版本的 CoffeeScript 已被锁定,并且将继续锁定在 ~1.10.0
版本。
依赖于自动解释 Gruntfile.coffee
文件的功能现已弃用。
如果您的 Gruntfile 是用 CoffeeScript 编写的,请另外运行 npm install coffeescript --save-dev
。这将允许您使用您喜欢的 CoffeeScript 版本,而不会被锁定在 Grunt 安装的版本上。在 Grunt 的下一个主要版本中,CoffeeScript 依赖项将被移除,您需要另外运行 npm install coffeescript
才能使用 CoffeeScript 编写 Gruntfile。
Grunt 1.0.0 发布发布时间:2016 年 4 月 4 日
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 用户将会收到一个警告。我们已经向现有的插件发送了超过 2000 个拉取请求来进行此更改。
我们恳请您向您喜欢的插件发送拉取请求,并要求他们更新 package.json
文件中的 peerDependencies
部分。
1.0.0 版本的更新内容
- 防止异步回调函数被多次调用。拉取请求 #1464。
- 将版权更新为 jQuery Foundation,并删除冗余的标头。修复 #1478。
- 将 glob 更新至 7.0.x 版本。修复 #1467。
- 删除重复的 BOM 字符串代码。拉取请求 #1482。
- 更新至最新的 cli ~1.2.0 版本
- 确保在安装时创建 grunt bin 文件。
RC1 版本的更新内容
coffee-script
已升级至~1.10.0
版本,这可能会在插件和 Gruntfile 中使用该语言时导致重大更改。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
部分。
征求意见
我们创建了一个 新的仓库,以鼓励社区成员提交 RFC,共同 shaping Grunt 的未来。
提交 RFC 将允许您正式提出对 Grunt 的重大更改,并征求核心团队和社区的反馈。
积极的提案将有助于描绘 Grunt 未来路线图,并希望加快社区对未来 Grunt 版本的贡献。
npm 脚本
我们现在将 grunt-cli
作为 grunt
的一部分安装。许多用户不希望执行 npm install grunt-cli -g
这一额外的步骤。为了更好地符合 Node.js 的习惯用法,您现在可以运行 npm install grunt --save-dev
,然后在您的 npm 脚本中包含 Grunt
{
"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
版本,这可能会在插件和 Gruntfile 中使用该语言时导致重大更改。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 测试问题以及整理更新日志。
在此版本中,我们解决了大约 12 个问题,添加了期待已久的 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 版本中引入的 回归。
请参阅 此处 的更新日志。
Grunt 0.4.3 发布发布于 2014 年 3 月 7 日
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
如果要在任务中使用这些外部库,请像安装 Grunt 或任何 Grunt 插件 一样使用 npm install <module> --save-dev
安装它们。例如,如果您之前使用过 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 最终版已在 npm 上发布!有关该版本的详细说明,请参阅 @tkellen 在 Bocoup 博客 上的文章。
最重要的内容
- Grunt 不再附带内置任务。它们已被提取到 grunt-contrib 命名空间下官方维护的独立插件中。有关更多详细信息,请参阅我们网站上的 插件列表。
- Grunt 不再附带二进制文件。要获取
grunt
命令,请使用npm install -g grunt-cli
全局安装 grunt-cli。该软件包将在本地安装到您的项目后运行任何版本的 Grunt(包括 0.3x)。
未来
Grunt v0.5 将支持一种名为 node-task 的新插件格式。它定义了一个与 Grunt 无关的无状态、基于承诺、事件发射的 API。它有一个真实的规范,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
的讨论。
谢谢,我们非常感谢您的工作!