npm-to-pnpm

npm to pnpm Migration

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "npm-to-pnpm" with this command: npx skills add ghosttypes/ff-5mp-api-ts/ghosttypes-ff-5mp-api-ts-npm-to-pnpm

npm to pnpm Migration

Overview

Migrate existing npm projects to pnpm. Covers single packages, workspaces/monorepos, CI/CD configuration, and common migration issues.

Current pnpm version: 10.28 (January 2026) - See version_info.md for details.

Quick Start (Single Package)

1. Install pnpm

npm install -g pnpm

2. Remove npm artifacts

rm package-lock.json rm -rf node_modules

3. Generate pnpm lockfile

pnpm import

4. Install dependencies

pnpm install

5. Verify

pnpm test && pnpm build

Workflow Decision Tree

Is this a single package or workspace/monorepo?

  • Single package: Use workflow_single_package.md

  • Workspace/monorepo: Use workflow_workspace_monorepo.md

Experiencing issues after migration?

  • Module not found: See troubleshooting.md

  • Module Resolution Issues

  • Build fails: See troubleshooting.md

  • Build and Tooling Issues

  • CI fails: See troubleshooting.md

  • CI/CD Issues

  • Other issues: See troubleshooting.md

Need npm command equivalents?

  • See cli_reference.md for all command translations

Core Migration Steps

  1. Install pnpm

See installation.md for all installation methods. Quick options:

Via npm

npm install -g pnpm

Via standalone script (recommended)

curl -fsSL https://get.pnpm.io/install.sh | sh -s -- --version=10.28.0

Windows PowerShell

iwr https://get.pnpm.io/install.ps1 -useb | iex

  1. Convert Lockfile

Use pnpm import to convert package-lock.json or yarn.lock to pnpm-lock.yaml :

pnpm import

See import_command.md for details on import behavior and workspace considerations.

  1. Install Dependencies

pnpm install

Key flags:

  • --frozen-lockfile

  • CI mode, exact install from lockfile

  • --shamefully-hoist

  • Temporarily work around module resolution issues

  • --force

  • Regenerate lockfile from package.json

See install_command.md for full install options.

  1. Update Scripts

npm → pnpm command changes:

npm pnpm

npm run <script>

pnpm <script> or pnpm run <script>

npm install <pkg>

pnpm add <pkg>

npm install -D <pkg>

pnpm add -D <pkg>

npm uninstall <pkg>

pnpm remove <pkg>

npx <cmd>

pnpm exec <cmd> or pnpm dlx <cmd>

See cli_reference.md for complete command reference.

Workspaces and Monorepos

npm workspaces require different handling:

  • Create pnpm-workspace.yaml to define workspace packages

  • Change workspace dependencies from * to workspace:* protocol

  • Update scripts to use pnpm -r instead of npm --workspaces

Full guide: workflow_workspace_monorepo.md

Key Differences to Understand

Module Structure

pnpm uses a content-addressable store with symlinks, not a flat node_modules . This:

  • Saves disk space (packages stored once globally)

  • Creates stricter dependency resolution (reveals hidden dependencies)

  • May require explicit dependency declarations

Lockfile

npm ignores package-lock.json . Use pnpm import to convert. After conversion, commit pnpm-lock.yaml to version control.

See limitations.md for details on lockfile differences.

Common Migration Gotchas

Missing Dependencies

Symptom: "Cannot find module" errors after migration

Cause: pnpm's strict layout reveals packages that were "accidentally" available in npm

Solution:

pnpm add <missing-package>

Workspace Protocol

npm: "my-utils": "*"

pnpm: "my-utils": "workspace:*"

Lifecycle Scripts

pnpm may run pre/post scripts differently. If needed:

.npmrc

enable-pre-post-scripts=true

CI/CD Updates

Update your CI to use pnpm:

GitHub Actions:

  • uses: pnpm/action-setup@v4 with: version: 10.28.0
  • uses: actions/setup-node@v4 with: cache: 'pnpm'

See workflow_single_package.md for more CI examples.

Reference Files Index

Workflow Guides

  • workflow_single_package.md

  • Standalone package migration

  • workflow_workspace_monorepo.md

  • Workspace and monorepo migration

  • troubleshooting.md

  • Common issues and solutions

Command Reference

  • cli_reference.md

  • npm → pnpm command translation

  • install_command.md

  • Full pnpm install documentation

  • add_command.md

  • Dependency adding options

  • import_command.md

  • Lockfile conversion details

Documentation

  • version_info.md

  • Current version (10.28) and installation

  • installation.md

  • All installation methods

  • limitations.md

  • Known pnpm limitations

  • workspaces.md

  • Full workspace documentation

  • npm_vs_pnpm.md

  • Feature comparison

  • release_10.28.md

  • Latest release notes

  • releases.md

  • Full release history

Configuration (.npmrc)

Common settings for npm migrants:

Temporary migration aids

shamefully-hoist=true auto-install-peers=true

Strictness settings

strict-peer-dependencies=false enable-pre-post-scripts=true

Migration Checklist

  • Install pnpm globally

  • Remove package-lock.json

  • Run pnpm import

  • Run pnpm install

  • Verify tests pass

  • Verify build succeeds

  • Update CI/CD configuration

  • Update documentation/README

  • Update team on command changes

  • Commit pnpm-lock.yaml

When NOT to Use pnpm

Consider staying with npm if:

  • Project relies on npm-specific features (npx quirks, flat modules)

  • Legacy tooling with hardcoded node_modules paths

  • Strict requirements for npm compatibility

  • See limitations.md for full details

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

biome

No summary provided by upstream source.

Repository SourceNeeds Review
General

eslint

No summary provided by upstream source.

Repository SourceNeeds Review
General

vitest

No summary provided by upstream source.

Repository SourceNeeds Review
General

jest

No summary provided by upstream source.

Repository SourceNeeds Review