How to clean up node modules?

How to clean up node modules?

Remove extraneous packages - manually or automatically

ByMario Kandut

honey pot logo

Europe’s developer-focused job platform

Let companies apply to you

Developer-focused, salary and tech stack upfront.

Just one profile, no job applications!

This article is based on Node v16.15.1 and NPM 8.11.0.

When building a Node.js application you install a various amount of npm modules, the package.json and node-modules folder grow. It is best practice minimizing the code you have to maintain, and this is also true for npm packages.

Clean up node_modules/ folder

💰 The Pragmatic Programmer: journey to mastery. 💰 One of the best books in software development, sold over 200,000 times.

There are two ways to clean up the node_modules folder:

  • Delete the folder and reinstall
  • Use npm prune (starting with npm version 6)

Manually remove and reinstall

You could remove your node_modules/ folder and then reinstall the dependencies from package.json.

Remove all your packages (for Windows users: you can use Git Bash to run this command):

rm -r node_modules/

Install packages:

npm install

Remove extraneous packages with NPM prune

Synopsis: npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]

npm prune removes extraneous packages. If a package name is provided, then only packages matching one of the supplied names are removed. Extraneous packages are those present in the node_modules folder, but not listed as any package's dependency list.

You can provide the following flags:

  • --production - If the --production flag is specified, or the NODE_ENV environment variable is set to production, the packages specified in your devDependencies will be removed.
  • --no-production will negate NODE_ENV being set to production.
  • --dry-run indicates that you don't want npm to make any changes and that it should only report what it would have done.
  • --json changes that npm prune made or would have made with --dry-run are printed as a JSON object.

Extraneous modules are pruned automatically (normal operations), hence this command is only needed with the --production flag. Though, operation is not always normal as it should be and crashes and mistakes happen. The command npm prune can help clean up resulting garbage of crashes.


  • npm prune removes not listed packages in the node_modules folder.
  • The flag --dry-run is useful to see what would be removed.
  • When crashes or mistakes happen, npm prune can help clean up any resulting garbage.

Thanks for reading and if you have any questions, use the comment function or send me a message @mariokandut.

If you want to know more about Node, have a look at these Node Tutorials.

References (and Big thanks):

NPM prune

More node articles:

Getting started with Webpack

How to list/debug npm packages?

How to specify a Node.js version

How to create a web server in Node.js

How to dynamically load ESM in CJS

How to convert a CJS module to an ESM

How to create a CJS module

How to stream to an HTTP response

How to handle binary data in Node.js?

How to use streams to ETL data?

How to connect streams with pipeline?

How to handle stream errors?

How to connect streams with pipe?

What Is a Node.js Stream?

Handling Errors in Node (asynchronous)

Handling Errors in Node.js (synchronous)

Introduction to errors in Node.js

Callback to promise-based functions

ETL: Load Data to Destination with Node.js

ETL: Transform Data with Node.js

ETL: Extract Data with Node.js

Event Emitters in Node.js

How to set up SSL locally with Node.js?

How to use async/await in Node.js

What is an API proxy?

How to make an API request in Node.js?

How does the Event Loop work in Node.js

How to wait for multiple Promises?

How to organize Node.js code

Understanding Promises in Node.js

How does the Node.js module system work?

Set up and test a .env file in Node

How to Use Environment Variables in Node

How to clean up node modules?

Restart a Node.js app automatically

How to update a Node dependency - NPM?

What are NPM scripts?

How to uninstall npm packages?

How to install npm packages?

How to create a package.json file?

What Is the Node.js ETL Pipeline?

What is data brokering in Node.js?

How to read and write JSON Files with Node.js?

What is package-lock.json?

How to install Node.js locally with nvm?

How to update Node.js?

How to check unused npm packages?

What is the Node.js fs module?

What is Semantic versioning?

The Basics of Package.json explained

How to patch an NPM dependency

What is NPM audit?

Beginner`s guide to NPM

Getting started with Node.js

Scroll to top ↑