/grunt-spawn-process

Spawn multiple processes from grunt

Primary LanguageJavaScriptMIT LicenseMIT

Spawn multiple processes from grunt

Getting Started

This plugin requires Grunt ~0.4.5

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-spawn-process --save-dev

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

grunt.loadNpmTasks('grunt-spawn-process');

The "spawnProcess" task

Overview

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

grunt.initConfig({
    watch: {
            server: {
                files:  ['server.js'],
                tasks:  ['spawnProcess:server'],
                options: {
                    spawn: false // IMPORTANT, do not delete
                }
            },
            anotherServer: {
                files: ['another server.js'],
                tasks: ['spawnProcess:anotherServer'],
                options: {
                    spawn: false // IMPORTANT, do not delete
                }
            }
    },
    spawnProcess: {
        server: {
            cmd: 'node',
            args: ['server.js']
        },
        anotherServer: {
            // cmd: 'node', // node is the default command
            args: ['another server.js']
        },
        webpack: {
            cmd: 'npm',
            args: ['run', 'webpack-dev-server']
        }
    }
})
require('load-grunt-tasks')(grunt);

grunt.registerTask('default', ['spawnProcess:server', 'spawnProcess:anotherServer', 'spawnProcess:webpack', 'watch']);

Options

options.cmd

Type: String
Default: node

The command that will be executed.

options.args

Type: 'Array'
Default: '[]'

The args that will be sent to the command

options.spawnOptions

Type: 'Object'
Default: '{}'

The options for child_process.spawn. You can see the list here.