从 0.4 升级到 1.0
本指南旨在帮助您将项目和插件从 Grunt 0.4.x 更新到 Grunt 1.0。
请注意,Grunt 1.0.0 不再支持 Node.js v0.8。
对于使用 Grunt 的项目
对等依赖
当您使用 Grunt 1.0 安装项目时,您可能会收到 peerDependencies
错误。我们请求您向您最喜欢的插件发送拉取请求,并要求他们更新其 package.json 中的 peerDependencies 部分。有关插件更新的详细信息,请参见下文。
对于插件和插件开发者
对等依赖
如果您的 Grunt 插件在 package.json 的 peerDependencies 部分包含 grunt,我们建议使用 "grunt": ">=0.4.0" 进行标记。否则,当 [email protected] 发布时,npm@2 用户在尝试安装您的插件时将收到硬错误,而 npm@3 用户将收到警告。
请注意,从 npm@3 开始,不再为用户安装对等依赖项。Grunt 插件的用户应该在安装任何 Grunt 插件的同时 npm install grunt --save-dev
。
我们要求您使用 "grunt": ">=0.4.0"
更新您的插件,并将其发布在 npm 上。
1.0.0 中的变化
- 防止异步回调被多次调用。拉取请求 #1464。
- 将版权更新为 jQuery 基金会,并删除冗余的标题。修复 #1478。
- 将 glob 更新到 7.0.x。修复 #1467。
- 删除重复的 BOM 去除代码。拉取请求 #1482。
- 更新到最新的 cli ~1.2.0
- 确保在安装时创建 grunt bin。
Grunt 1.0 RC1 中的变化
请注意,某些 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
而失败。
在文档中发现错误?提交问题。