0.2.0 • Published 8 years ago

grunt-custom-shrinkwrap v0.2.0

Weekly downloads
83
License
Apache-2.0
Repository
github
Last release
8 years ago

grunt-custom-shrinkwrap

npm version Build Status

Run npm shrinkwrap and customise the output file

When deploying to a production environment it is often wise to ensure that, when installing dependencies, you'll get the exact version numbers that were known to be working in your development environment.

npm offers a command to this purpose, npm shrinkwrap. However, there's a problem there: it doesn't take into account optionalDependencies, i.e. they are treated like all others and added to the final list of "frozen" dependencies. This does not make sense if the optional dependencies are, for example, platform-specific (e.g. fsevents). This module allows a developer to generated a "shrinkwrapped" file and specify which dependencies should be taken out of it.

Hopefully, npm will fix this at some point (you can follow the relevant GitHub issue).

But, well, itches must be scratched.

Install

$ npm install --save-dev grunt-custom-shrinkwrap

Usage

require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

grunt.initConfig({
    customShrinkwrap: {
        defaultTarget: {
            options: {
                devDependencies: true,
                excludeDependencies: [ 'fsevents' ]
            },
        }
    }
});

grunt.registerTask('default', ['customShrinkwrap']);

Examples

Create a shrinkwrap file without customisation

grunt.initConfig({
    customShrinkwrap: {
        defaultTarget: {
        }
    }
});

Create a shrinkwrap file which includes your devDependencies

grunt.initConfig({
    customShrinkwrap: {
        defaultTarget: {
            devDependencies: true
        }
    }
});

Create a shrinkwrap file which excludes one or more specified dependencies

grunt.initConfig({
    customShrinkwrap: {
        defaultTarget: {
            excludeDependencies: [ 'dep1', 'dep2' ]
        }
    }
});

Options

devDependencies

Optional Type: Boolean

Set or clear the --dev flag for the npm shrinkwrap command, to determine whether the devDependencies in your package.json must be included in the shrinkwrap file. Default is false.

compactOutput

Optional Type: Boolean

The default output of npm shrinkwrap contains spaces; this parameters allows to remove them. Default is false.

excludeDependencies

Optional Type: Array

The dependency names specified with this parameter will be removed from the shrinkwrap file's dependencies array after its generation. Default is an empty array.

License

Apache License 2.0