@@ -6,23 +6,23 @@ title: Feature Comparison
6
6
| Feature | pnpm| Yarn| npm | Notes |
7
7
| --- | :--:| :--:| :--:| --- |
8
8
| Workspace support | ✔️ | ✔️ | ✔️ |
9
- | Isolated ` node_modules ` | ✔️ | ✔️ | ✔️ | For pnpm this is the default one |
10
- | Hoisted ` node_modules ` | ✔️ | ✔️ | ✔️ | For npm this is the default one |
9
+ | Isolated ` node_modules ` | ✔️ | ✔️ | ✔️ | Default in pnpm. |
10
+ | Hoisted ` node_modules ` | ✔️ | ✔️ | ✔️ | Default in npm. |
11
+ | Plug'n'Play | ✔️ | ✔️ | ❌| Default in Yarn. |
11
12
| Autoinstalling peers | ✔️ | ❌| ✔️ |
12
- | Plug'n'Play | ✔️ | ✔️ | ❌| For Yarn this is the default one |
13
13
| Zero-Installs | ❌| ✔️ | ❌|
14
14
| Patching dependencies | ✔️ | ✔️ | ❌|
15
15
| Managing Node.js versions | ✔️ | ❌| ❌|
16
16
| Managing versions of itself | ✔️ | ✔️ | ❌|
17
- | Has a lockfile | ✔️ | ✔️ | ✔️ | ` pnpm-lock.yaml ` , ` yarn.lock ` , ` package-lock.json ` |
18
- | Overrides support | ✔️ | ✔️ | ✔️ | Yarn calls this feature "resolutions" |
17
+ | Has a lockfile | ✔️ | ✔️ | ✔️ | ` pnpm-lock.yaml ` , ` yarn.lock ` , ` package-lock.json ` . |
18
+ | Overrides support | ✔️ | ✔️ | ✔️ | Known as "resolutions" in Yarn. |
19
19
| Content-addressable storage | ✔️ | ❌| ❌|
20
- | Dynamic package execution | ✔️ | ✔️ | ✔️ | ` pnpm dlx ` , ` yarn dlx ` , ` npx ` |
20
+ | Dynamic package execution | ✔️ | ✔️ | ✔️ | ` pnpm dlx ` , ` yarn dlx ` , ` npx ` . |
21
21
| Side-effects cache | ✔️ | ❌| ❌|
22
22
| [ Catalogs] | ✔️ | ❌| ❌|
23
23
| [ Config dependencies] | ✔️ | ❌| ❌|
24
24
| [ JSR registry support] | ✔️ | ✔️ | ❌|
25
- | [ Running install automatically before running scripts] | ✔️ | ❌| ❌| In case of Yarn, if Plug'n'Play is used, dependencies are always up-to- date |
25
+ | [ Running install automatically before running scripts] | ✔️ | ❌| ❌| In Yarn, Plug'n'Play ensures dependencies are always up to date. |
26
26
| [ Hooks] | ✔️ | ✔️ | ❌|
27
27
| Listing licenses | ✔️ | ✔️ | ❌| pnpm supports it via ` pnpm licenses list ` . Yarn has a plugin for it. |
28
28
0 commit comments