Upgrading from 0.4 to 1.0
This guide is here to help you update your projects and plugins from Grunt 0.4.x to Grunt 1.0.
Be advised Grunt 1.0.0 no longer supports Node.js v0.8.
For Projects that use Grunt
Peer Dependencies
You might receive peerDependencies
errors when you install a project with Grunt 1.0.
We ask you to send pull requests to your favourite plugins and ask them to update the peerDependencies section of their package.json.
See below for details about plugin updates.
For Plugins and Plugin developers
Peer Dependencies
If you have a Grunt plugin that includes grunt in the peerDependencies section of your package.json, we recommend tagging with "grunt": ">=0.4.0". Otherwise when grunt@1.0.0 is released, npm@2 users will receive a hard error when trying to install your plugin and npm@3 users will get a warning.
Be aware, peer dependencies are no longer installed for users as of npm@3. Users of Grunt plugins are expected to npm install grunt --save-dev alongside any Grunt plugin install.
We ask you to update your plugin with "grunt": ">=0.4.0"
in it and publish that on npm.
API Changes
From Grunt 1.0 RC1:
Be aware, some APIs have changed warranting a major version update:
coffee-script
is upgraded to~1.10.0
which could incur breaking changes when using the language with plugins and Gruntfiles.nopt
is upgraded to~3.0.6
which has fixed many issues, including passing multiple arguments and dealing with numbers as options. Be aware previously--foo bar
used to pass the value'bar'
to the optionfoo
. It will now set the optionfoo
totrue
and run the taskbar
.glob
is upgraded to~6.0.4
andminimatch
is upgraded to~3.0.0
. Results are now sorted by default withgrunt.file.expandMapping()
. Pass thenosort: true
option if you don't want the results to be sorted.lodash
was upgraded to~4.3.0
. Many changes have occurred. Some of which that directly effect Grunt aregrunt.util._.template()
returns a compile function andgrunt.util._.flatten
no longer flattens deeply.grunt.util._
is deprecated and we highly encourage you tonpm install lodash
andvar _ = require('lodash')
to uselodash
. Please see the lodash changelog for a full list of changes: https://github.com/lodash/lodash/wiki/Changelogiconv-lite
is upgraded to~0.4.13
and strips the BOM by default.js-yaml
is upgraded to~3.5.2
and may affectgrunt.file.readYAML
. We encourage you to pleasenpm install js-yaml
and usevar YAML = require('js-yaml')
directly in case of future deprecations.- A file
mode
option can be passed into grunt.file.write(). Done, without errors.
was changed toDone.
to avoid failing by mistake on the worderrors
.