grunt-node-gyp

Run node-gyp commands from Grunt.

grunt-node-gyp

Run node-gyp commands from Grunt.

This plugin requires Grunt ~0.4.0

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-node-gyp --save-dev

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

grunt.loadNpmTasks('grunt-node-gyp');

For node-gyp to work you’ll have to install all necessary build tools for your platform, see node-gyp’s README.md for that matter. However, you do not have to install node-gyp globally as it is already included with grunt-node-gyp.

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

grunt.initConfig({
  gyp: {
    options: {
      // Task-specific options go here. 
    },
    your_target: {
      // Target-specific file lists and/or options go here. 
    }
  }
})

Type: String Default value: rebuild

Specify node-gyp command to execute.

Supported values are configure, build, clean and rebuild. See node-gyp’s README.md for command descriptions.

Type: Boolean Default value: false

Create a debug build.

Type: String Default value: Your processor’s architecture

Set the target architecture: ia32, x64 or arm.

This would be equivalent to node-gyp rebuild.

$ grunt gyp:addon
grunt.initConfig({
  gyp: {
    addon: {}
  }
})

This would be equivalent to node-gyp configure --debug.

$ grunt gyp:customTarget
grunt.initConfig({
  gyp: {
    customTarget: {
      command: 'configure',
      options: {
        debug: true
      }
    }
  }
})

This would be equivalent to node-gyp build --arch=arm.

$ grunt gyp:arm
grunt.initConfig({
  gyp: {
    arm: {
      command: 'build',
      options: {
        arch: 'arm'
      }
    }
  }
})

First, install all dependencies:

$ npm install

Then run the tests:

$ grunt test

Testing might take a while as compiling takes time. You may need to install the node development header files before by executing:

$ ./node_modules/.bin/node-gyp install

This project follows Semantic Versioning 2.

  • v2.0.0 (2015-05-25): Update node-gyp to v2
  • v1.0.0 (2015-02-14): Pass node-gyp’s error to Grunt to make error messages more clear
  • v0.5.0 (2014-12-02): Add arch option
  • v0.4.1 (2014-08-25): Fix rebuild not stopping execution if one of the commands has failed
  • v0.4.0 (2014-07-01): Update node-gyp to v1.x
  • v0.3.0 (2014-03-05): Update node-gyp to v0.13.x
  • v0.2.1 (2014-02-21): Hotfix because v0.2.0 didn’t include the main task file gyp.js
  • v0.2.0 (2013-11-21): Update node-gyp to v0.12.x
  • v0.1.0 (2013-08-25): Initial release

grunt-node-gyp itself is licensed under the BSD 2-clause license, subject to additional terms. See LICENSE for the full license.