node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »




Why not? This semi-useless module is about 15% easier than just chaining together a bunch of scripts in package.json to run rimraf, npm install, then npm shrinkwrap. Although, if this doesn't work for you, you may want to try something far superior, such as scripty.


You can install this garbage globally using something like:

$ npm i npmshrink -g

OR, you can try installing it in your project locally as a devDependency:

$ npm i npmshrink -D

Next, you can use the module by calling one of the following commands (from the Terminal or via an npm script):

  1. npmshrink — Alias for npmshrink:dev (see below).
  2. npmshrink:dev — Deletes the ./node_modules/ directory, installs dependencies and devDependencies from the package.json file and adds them to the generated npm-shrinkwrap.json file.
  3. npmshrink:prod — Same as npmshrink:dev, but doesn't install the devDependencies from the package.json file (or in the npm-shrinkwrap.json file).


Here's a random snippet of a scripts block in a package.json file:

  "scripts": {
    "shrink": "npmshrink",
    "shrink:prod": "npmshrink:prod",
    "test": "echo \"Error: no test specified\" && exit 1"

In order to [re]generate a shrinkwrap file, you would use one of the two following commands:

  1. $ npm run shrink — generates an npm-shrinkwrap.json file with both dependencies and devDependencies.
  2. $ npm run shrink:prod — generates an npm-shrinkwrap.json file with only the dependencies (no devDependencies).


WTFPL, because I literally can't even give an F.