Published on

How to Replace All Node_Modules with pnpm Cache

Authors
  • Name
    Ripal & Zalak
    Twitter

How to Replace All Node_Modules with pnpm Cache

node_modules directories are notorious for consuming large amounts of disk space. If you’re looking for a way to clean up your system and use pnpm's efficient caching mechanism, this guide provides step-by-step instructions to achieve that.


Why Switch to pnpm?

pnpm solves the problem of bloated node_modules directories by:

  • Creating a single global store for dependencies.
  • Using symbolic links to connect projects to the global cache.

This approach reduces disk space usage significantly and speeds up installations by avoiding redundant downloads.


Steps to Remove All Node_Modules and Use pnpm

1. Remove All node_modules Directories

Use NPKill

The easiest way to remove all node_modules directories is by using NPKill, a CLI tool designed for this purpose.

Installation:

npm install -g npkill

Find and Delete All node_modules:

npkill

This command scans your file system, lists all node_modules directories, and allows you to delete them interactively.

2. Install pnpm Globally

If you haven’t already, install pnpm:

npm install -g pnpm

3. Migrate Projects to pnpm

For each project you want to convert to pnpm:

  1. Delete Existing Lock Files:

    rm package-lock.json yarn.lock
    
  2. Install Dependencies with pnpm:

    pnpm install
    

    This command:

    • Recreates the node_modules directory with symlinks.
    • Stores dependencies in pnpm's global cache.
  3. Update Scripts (Optional): Replace npm or yarn commands with pnpm equivalents in your package.json scripts.

4. Verify pnpm Cache Usage

You can check pnpm's global store location and size:

pnpm store path
pnpm store status

Tips for Maintaining a Clean System

  • Regularly Clean the pnpm Cache: Over time, pnpm's cache can also grow. Use this command to clean unused packages:

    pnpm store prune
    
  • Automate the Cleanup Process: Schedule a script to find and remove old node_modules directories on your system periodically.


Frequently Asked Questions

1. Can pnpm automatically scan and replace all node_modules?

No, pnpm doesn’t currently have a feature to scan all directories for node_modules and replace them automatically. You need to handle the cleanup manually using tools like npkill.

2. Will my projects work seamlessly after switching to pnpm?

In most cases, yes. However, ensure that your package.json scripts and project configurations are compatible with pnpm. Refer to the pnpm compatibility guide for more details.

3. What happens to disk usage after switching to pnpm?

You’ll notice a significant reduction in disk space usage as pnpm uses symlinks and a global store instead of duplicating dependencies in each project.


Conclusion

By removing all node_modules and switching to pnpm, you can drastically reduce disk space usage and improve dependency management efficiency. Tools like npkill make the cleanup process simple, while pnpm ensures smooth installations with its global cache.