node package manager

grunt-launch

grunt-launch is an application deployment framework based on bengourley/launch but built for Grunt.

grunt-launch

grunt-launch is an application deployment framework based on bengourley/launch but built for Grunt.

This plugin requires Grunt ~0.4.1

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-launch --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-launch');

In your project's Gruntfile, add a section named launch to the data object passed into grunt.initConfig().

grunt.initConfig({
  launch: {
    info: {
      options: {
        branch: 'deploy52',
        git: true,
        remote: '?',
        remotepath: '~/',
        sitePath: '/var/www',
        tempDir: '/tmp/my-proj-launch/',
        bower: {
          force: false,
          production: true
        }
      }
    },
    installDependencies: true,
    installBowerDependencies: false,
    createVersionedDir: true,
    moveTempToVersioned: true,
    symbolicLink: true
  },
})

Type: String Default value: None

The branch to checkout from the repo.

Type: Boolean Default value: None

Whether or not to use git to deploy.

When git: true, you will need to add a post-receive hook to call grunt launch on the server when you push.

TODO: Add example of post-receive hook.

Type: String Default value: None

The folder to which to deploy the project.

Type: String Default value: /tmp/[project-name]-launch

The temporary folder for staging files.

Type: String Default value: ''

The sub-directory to push to remote. Useful for distributions/builds/uglifying.

Type: Boolean Default value: false

Forces the latest version on conflict.

Type: Boolean Default value: false

Installs production dependencies only.

grunt.initConfig({
  launch: {
    info: {
      options: {},
      bowerOptions: {
        force: true,
        production: true
      }
    },
    installDependencies: true,
    installBowerDependencies: true,
    createVersionedDir: true,
    moveTempToVersioned: true,
    symbolicLink: true
  },
})

TODO: Add custom option example.

grunt.initConfig({
  launch: {
    options: {
    },
    installDependencies: true,
    installBowerDependencies: true,
    createVersionedDir: true,
    moveTempToVersioned: true,
    symbolicLink: true
  },
})

Some options may be specified from the command-line.

grunt launch --pkg=2.1.0
var action = require('grunt-launch')(grunt).action;
action.local('grep -e "space command" somefile.js', function (exitcode) {
  // do something 
});

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

  • 0.4.0 - Added support for spaces in command arguments.
  • 0.4.1 - Added support for multiple spaces in command arguments.
  • 0.4.2 - Added support for multiple spaces in command at beginning.
  • 0.5.0 - Optionally install bower dependencies and prepare for Grunt 1.0.