Skip to content

nullivex/grunt-project-update

Repository files navigation

grunt-project-update Build Status

Grunt task to update bower, npm, and other arbitrary update tasks

Getting Started

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');

The "projectUpdate" task

Overview

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.

Options

commands

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.

cwd

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'}
  }
})

npm

Type: Boolean Default value: false

This will enable or disable npm explicitly.

bower

Type: Boolean Default value: false

This will enable or disable bower explicitly.

Usage Examples

Default Usage

The default functionality will auto detect bower and npm and update them appropriately.

grunt.initConfig({
  projectUpdate: {
    update: {}
  }
})

Enable NPM/Bower Explicitly

If you have non-standard file locations use something like this:

grunt.initConfig({
  projectUpdate: {
    update: {
      npm: true,
      bower: true
    }
  }
})

Arbitrary Commands

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.

Contributing

Commits and changes are welcome.

Please follow the NPM coding style: https://npmjs.org/doc/coding-style.html

Release History

0.2.4

  • 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

0.2.3

  • Fixed issue with working directories on custom commands

0.2.2

  • Updated project properties for package.json

0.2.1

  • Updated project name in package.json

0.2.0

  • API rewrite with automatic package manager detection.

0.1.0

  • Initial release and port from custom task right in the gruntfile

About

Grunt task to update bower, npm, and other arbitrary update tasks

Resources

License

Stars

Watchers

Forks

Packages

No packages published