Correct the v12 guides from agent-skills.md through lockfile.md against pnpm/crates, and fix the same wrong text on the v11 twins where pnpm11 confirms it. Part of pnpm/tasks#191. Wrong claims (both versions): - configuring: the global auth file is auth.ini, not rc; list the npm_config_* exceptions (workspace dir, userconfig, URL-scoped auth). - config-dependencies: the hook import used an invalid ESM specifier. - docker: Example 3 ran fetch --prod and built without an offline install or pnpm-workspace.yaml. - errors: drop MISMATCHED_RELEASE_CHANNEL, describe INVALID_NODE_VERSION through nodeVersion, PEER_DEP_ISSUES needs strictPeerDependencies. - faq: no lockfile deletion after a readPackage hook, default store order, junctions depend on symlink privilege. - filtering: `!./lib` matches one project; use `!./lib/**`. - git branch lockfiles: every non [A-Za-z0-9_.-] character becomes `!`, the name is lowercased, merging deletes branch lockfiles, "or" patterns. - git-worktrees: remove the nonexistent worktree:new and shell/wt.sh. - global-packages: orphaned dirs are cleaned by add -g (and update -g in v12), not store prune; document that add -g replaces every group that contains the package. - how-peers-are-resolved: current peer directory names. - completion: built-in completion already covers --filter and scripts. - feature-comparison: broken JSR anchor. Wrong claims (v12 only): - cargo: cargo.indexUrl fails the parse, overrides apply to adding only, merge the duplicated Cargo index section into Registries. - global-virtual-store: pnx keeps its own virtual store (dlx part only; the global-install claims are left for a separate decision). - installation: the npm package installs on Node.js 18, only get-pnpm needs 22.13; trim unverified compatibility rows. Missing facts (v12): agent-skills group filtering and naming, catalogs (catalogs.default, pnx, --save-catalog, error codes), cargo recursive add, build-std, resolution keys, completion zsh/pwsh setup, config dependency location and error codes, include error codes, CI opt-outs and pnpm ci, finders on list, filtering settings and --no-fail-if-no-match, global install refusals, trust for npm-registry package managers, Rust shims, overrides link from aliases. Stale history (v12): drop v11/v10 version markers and "since v11" narration in continuous-integration, filtering, finders, git-worktrees, global-packages, global-virtual-store, how-peers-are-resolved, lockfile, completion, configuring. Review follow-up: the Node.js compatibility table keeps the pnpm 10 column; Docker Example 3 builds with all dependencies in a build stage and ships only production dependencies, with the pnpm-workspace.yaml caveat (both versions); catalogs keep the bare-path form; v11 global packages name `pnpm update -g` as cleaning orphans too; the cargo build-std note says when rust-src must be listed. Second review: build-std needs a non-empty list; the Docker fetch layer also depends on the project settings; branch lockfile names keep only ASCII characters; the conflict merge needs both sides to parse; Rust shims and package managers are default globalShims participants; pnpm self-update also cleans orphaned global groups; v12 pnpm login writes tokens to config.yaml; legacyDirFiltering keeps the subtree wording (the v12 mismatch is pnpm/tasks#196); the v12 Docker example copies the files that `include` names before pnpm fetch.
2.8 KiB
2.8 KiB
id, title
| id | title |
|---|---|
| feature-comparison | Feature Comparison |
| Feature | pnpm | npm | Notes |
|---|---|---|---|
| Workspace support | ✅ | ✅ | |
Isolated node_modules |
✅ | ✅ | Default in pnpm. |
Hoisted node_modules |
✅ | ✅ | Default in npm. |
| Plug'n'Play | ✅ | ❌ | |
| Autoinstalling peers | ✅ | ✅ | |
| Patching dependencies | ✅ | ❌ | |
| Managing runtimes | ✅ | ❌ | |
| Managing versions of itself | ✅ | ❌ | |
| Has a lockfile | ✅ | ✅ | pnpm-lock.yaml, package-lock.json. |
| Overrides support | ✅ | ✅ | |
| Content-addressable storage | ✅ | ❌ | |
| Dynamic package execution | ✅ | ✅ | pnx, npx. |
| Side-effects cache | ✅ | ❌ | |
| Catalogs | ✅ | ❌ | |
| Config dependencies | ✅ | ❌ | |
| JSR registry support | ✅ | ❌ | |
| Auto-install before script run | ✅ | ❌ | |
| Hooks | ✅ | ❌ | |
| Build script security | ✅ | ❌ | |
| SBOM generation | ✅ | ✅ | pnpm sbom, npm sbom. |
| Listing licenses | ✅ | ❌ | pnpm supports it via pnpm licenses list. |
Note: To keep the comparison concise, we include only features likely to be used frequently.