Remove extraneous packages - manually or automatically
By Mario Kandut
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.14.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.
💰 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:
npm prune(starting with npm version 6)
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/
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
devDependencieswill be removed.
--no-productionwill negate NODE_ENV being set to production.
--dry-runindicates that you don't want npm to make any changes and that it should only report what it would have done.
--jsonchanges that npm prune made or would have made with
--dry-runare printed as a JSON object.
Extraneous modules are pruned automatically (normal operations), hence this command is only needed with the
Though, operation is not always normal as it should be and crashes and mistakes happen.
npm prune can help clean up resulting garbage of crashes.
npm pruneremoves not listed packages in the
--dry-runis useful to see what would be removed.
npm prunecan 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.
Never miss an article.