npm command to uninstall or prune unused packages in Node.js

node.js, npm, uninstallation

Solution

Note: Recent `npm` versions do this automatically when running `npm install` if package-locks are enabled, so this is not necessary except for removing development packages with the `--production` flag.

Run `npm prune` to remove modules not listed in `package.json`.

From `npm help prune`:

This command removes "extraneous" packages. If a package name is provided, then only packages matching one of the supplied names are removed.

Extraneous packages are packages that are not listed on the parent package's dependencies list.

If the `--production` flag is specified, this command will remove the packages specified in your devDependencies.

Problem

Is there a way to simply uninstall all unused (undeclared) dependencies from a Node.js project (ones that are no longer defined in my `package.json`.) When I update my application I like to have the unreferenced packages removed automatically.

Original source