Skip to content

1. Sharing node_module

To share a single node_modules folder across multiple React (or other Node.js) projects — but it’s not recommended for most situations unless you’re using a monorepo or know the trade-offs well.

Option 1: ✅ Use a Monorepo (Recommended Way)

Section titled “Option 1: ✅ Use a Monorepo (Recommended Way)”

Tools like:

Let you keep multiple projects in one repo like this:

my-monorepo/
├── node_modules/ ← Shared
├── package.json
├── packages/
│ ├── project-a/
│ └── project-b/

Each project still has its own dependencies listed, but the node_modules folder is centralized. Tools handle symlinks and dependency resolution for you.

Benefits:

  • Saves space.
  • Better dependency caching.
  • Built-in tools for linking internal packages.
  • Great for teams and scalable setups.

Option 2: ⚠️ Manually Symlink node_modules** (Not Recommended)

Section titled “Option 2: ⚠️ Manually Symlink node_modules** (Not Recommended)”

You could create a node_modules folder in a common location, and use a symlink like:

Terminal window
ln -s /path/to/shared/node_modules ./node_modules

But this is risky:

  • It breaks module resolution logic that assumes local context.
  • Tools like Webpack, React Scripts, or Next.js may misbehave.
  • React dependencies may conflict across projects (different versions, peer dependencies, etc.).
  • You’ll likely encounter bugs during build or runtime.
  • Each project has its own dependency tree (including nested versions).
  • React is sensitive to multiple versions (e.g., react, react-dom).
  • You may cause version mismatches, hard-to-debug errors, or broken builds.