黑人的命也是命

从 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.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 而失败。