grunt-module

A Grunt plugin to easily release and publish your npm module.

grunt-module

A Grunt plugin to easily release and publish your npm module.

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

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

grunt.loadNpmTasks('grunt-module');

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

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

Type: string Default value: 'master'

The branch to release and publish from.

Type: boolean Default value: false

Check that the branch is on options.branch and the working tree is clean.

Type: boolean Default value: false

Publish to the npm registry.

Type: boolean Default value: false

Make and push a Git tag/release.

This Grunt plugin works best in conjunction with a Grunt plugin like grunt-bumpup to update your project's npm version.

grunt.initConfig({
    bumpup: {
        options: {
            newlineEof: true
        },
        file: 'package.json'
    },
    module: {
        'check-repository': {
            options: {
                branch: 'master',
                check: true
            }
        },
        'release-publish': {
            options: {
                release: true,
                publish: true
            }
        }
    }
});
 
grunt.registerTask('test', [
    // ... 
]);
 
grunt.registerTask('publish', function (type) {
    grunt.task.run('test');
    grunt.task.run('module:check-repository');
    grunt.task.run('bumpup:' + type);
    grunt.task.run('module:release-publish');
});

To run the test suite first install the development dependencies:

npm install

then run the tests:

npm test