grunt-custom-shrinkwrap v0.2.0
grunt-custom-shrinkwrap
Run
npm shrinkwrapand 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-shrinkwrapUsage
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.