Grunt task that creates a shrinkwrap file and allows to take specific dependencies out of it
npm install grunt-custom-shrinkwrap> 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.
```
$ npm install --save-dev grunt-custom-shrinkwrap
`js
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']);
`
`js`
grunt.initConfig({
customShrinkwrap: {
defaultTarget: {
}
}
});
`js`
grunt.initConfig({
customShrinkwrap: {
defaultTarget: {
devDependencies: true
}
}
});
`js`
grunt.initConfig({
customShrinkwrap: {
defaultTarget: {
excludeDependencies: [ 'dep1', 'dep2' ]
}
}
});
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.
Optional
Type: Boolean
The default output of npm shrinkwrap contains spaces; this parameters allows to remove them. Default is false.
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.