npm dependencies and devDependencies
flavio ⚡️🔥

flavio ⚡️🔥 @flaviocopes

About: I write tutorials for developers at https://flaviocopes.com

Joined:
Apr 5, 2018

npm dependencies and devDependencies

Publish Date: Aug 17 '18
6 1

When you install an npm package using npm install <package-name>, you are installing it as a dependency.

The package is automatically listed in the package.json file, under the dependencies list (as of npm 5: before you had to manually specify --save).

When you add the -D flag, or --save-dev, you are installing it as a development dependency, which adds it to the devDependencies list.

Development dependencies are intended as development-only packages, that are unneeded in production. For example testing packages, webpack or Babel.

When you go in production, if you type npm install and the folder contains a package.json file, they are installed, as npm assumes this is a development deploy.

You need to set the --production flag (npm install --production) to avoid installing those development dependencies.

Comments 1 total

  • John Hotterbeekx
    John HotterbeekxAug 17, 2018

    I find an easy way to remember this is to try and think if the library is needed in the actual code, like importing in a component, or not. If you import it somewhere in the source of your code, it should be a dependency. If it is only used when building (e.g. Webpack or a Webpack loader), testing, or in a package.json scripts or any outside tool, then it should be development dependency. And always try and have as few regular dependencies as needed, if it can be a development dependency, it should!

Add comment