Grunt task to update bower, npm, and other arbitrary update tasks
This plugin requires Grunt ~0.4.2
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-project-update --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-project-update');
To activate plugin please define a default config similar to this.
grunt.initConfig({
projectUpdate: {
update: {}
}
})
It will autodetect package.json
and bower.json
and update them appropriately.
This requires you have npm
and/or bower
installed globally.
Type: Array
Default value: []
An array of commands to run in this format
{cmd: 'npm', args: ['prune']}
or with the CWD (current working directory)
{cmd: 'npm', args: ['prune'], opts: {cwd: '/foo'}}
This is useful for specifying custom commands to run during the update.
Type: String
Default value: null
This will change the current working directory the commands are ran in.
If say bower is in a different folder use two separate targets like so:
grunt.initConfig({
projectUpdate: {
npm: {},
bower: {cwd: 'assets'}
}
})
Type: Boolean
Default value: false
This will enable or disable npm
explicitly.
Type: Boolean
Default value: false
This will enable or disable bower
explicitly.
The default functionality will auto detect bower and npm and update them appropriately.
grunt.initConfig({
projectUpdate: {
update: {}
}
})
If you have non-standard file locations use something like this:
grunt.initConfig({
projectUpdate: {
update: {
npm: true,
bower: true
}
}
})
To add your own arbitrary commands try this:
grunt.initConfig({
projectUpdate: {
update: {
npm: true,
bower: true,
commands: [
{cmd: 'my-package-manager', args: ['install']},
{cmd: 'my-package-manager', args: ['update']},
{cmd: 'my-package-manager', args: ['prune']}
]
}
}
})
Just not that commands set there are used first and then the others will be ran.
Commits and changes are welcome.
Please follow the NPM coding style: https://npmjs.org/doc/coding-style.html
- Fixes #2 which would enable npm if
package.json
exists even if npm is specifically disabled at runtime - Changed the order to prune, install, update to stop the update of packages that have been dropped
- Fixed issue with working directories on custom commands
- Updated project properties for package.json
- Updated project name in package.json
- API rewrite with automatic package manager detection.
- Initial release and port from custom task right in the gruntfile