Upgrading from 0.4 to 1.0
旧版本(如 1.5 及更早版本)不再维护。在此处了解更多信息和其他支持选项。
本指南旨在帮助你将项目和插件从 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" 进行标记。否则,当 grunt@1.0.0 发布时,npm@2 用户将 在尝试安装你的插件时收到硬错误,而 npm@3 用户将收到警告。
请注意,从 npm@3 开始,对等依赖不再为用户自动安装。
Grunt 插件的用户需要在安装任何 Grunt 插件的同时,使用 npm install grunt --save-dev
。
我们要求你使用 "grunt": ">=0.4.0"
更新你的插件,并在 npm 上发布。
1.0.0 中的变更
- 防止异步回调被多次调用。Pull #1464。
- 将版权更新为 jQuery Foundation 并删除冗余标头。修复 #1478。
- 将 glob 更新到 7.0.x。修复 #1467。
- 删除重复的 BOM 剥离代码。Pull #1482。
- 更新到最新的 cli ~1.2.0
- 确保在安装时创建 grunt 可执行文件。
Grunt 1.0 RC1 中的变更:
请注意,一些 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
而意外失败。
Found an error in the documentation?
File an issue.