CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-pnpm

Fast, disk space efficient package manager for Node.js with hard links, symlinks, and monorepo support

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

package-management.mddocs/

Package Management

Core package management operations for installing, adding, removing, and updating Node.js packages with pnpm's fast, space-efficient approach.

Capabilities

Install Dependencies

Install all dependencies from package.json using the lockfile for reproducible builds.

/**
 * Install all dependencies from package.json
 * Uses pnpm-lock.yaml for deterministic installations
 */
pnpm install [options]
pnpm i [options]

Options:

  • --frozen-lockfile - Don't generate lockfile and fail if update is needed
  • --offline - Don't make network requests, use cached packages only
  • --prefer-offline - Use cached packages when available
  • --production - Only install production dependencies
  • --dev - Only install development dependencies
  • --ignore-scripts - Don't run lifecycle scripts

Usage Examples:

# Standard install
pnpm install

# Production-only install
pnpm install --production

# Install without updating lockfile
pnpm install --frozen-lockfile

# Offline install from cache
pnpm install --offline

Add Packages

Add new packages to dependencies with automatic package.json and lockfile updates.

/**
 * Add packages to dependencies
 * Updates package.json and pnpm-lock.yaml
 */
pnpm add <pkg>[@version] [options]

Options:

  • --save-dev, -D - Add to devDependencies
  • --save-prod, -P - Add to dependencies (default)
  • --save-optional, -O - Add to optionalDependencies
  • --save-exact, -E - Save exact version instead of range
  • --global, -g - Install globally
  • --workspace - Add as workspace dependency

Usage Examples:

# Add production dependency
pnpm add lodash

# Add development dependency
pnpm add -D typescript

# Add specific version
pnpm add react@18.2.0

# Add with exact version
pnpm add -E prettier

# Add multiple packages
pnpm add lodash axios express

# Add global package
pnpm add -g pm2

Remove Packages

Remove packages from dependencies and clean up package.json and lockfile.

/**
 * Remove packages from dependencies
 * Updates package.json and pnpm-lock.yaml
 */
pnpm remove <pkg> [options]
pnpm rm <pkg> [options]
pnpm uninstall <pkg> [options]
pnpm un <pkg> [options]
pnpm uni <pkg> [options]

Options:

  • --global, -g - Remove from global packages
  • --save-dev, -D - Remove from devDependencies only
  • --save-prod, -P - Remove from dependencies only

Usage Examples:

# Remove package
pnpm remove lodash

# Remove multiple packages
pnpm remove lodash axios

# Remove development dependency
pnpm remove -D typescript

# Remove global package
pnpm remove -g pm2

Update Packages

Update packages to their latest versions based on version ranges in package.json.

/**
 * Update packages to latest compatible versions
 * Respects version ranges in package.json
 */
pnpm update [pkg] [options]
pnpm up [pkg] [options]
pnpm upgrade [pkg] [options]

Options:

  • --latest, -L - Update to latest versions ignoring ranges
  • --global, -g - Update global packages
  • --recursive, -r - Update in all workspace packages
  • --interactive, -i - Interactive update mode
  • --prod - Update only production dependencies
  • --dev - Update only development dependencies

Usage Examples:

# Update all packages
pnpm update

# Update specific package
pnpm update react

# Update to latest versions
pnpm update --latest

# Interactive update
pnpm update --interactive

# Update in all workspaces
pnpm update --recursive

Link Packages

Link local packages for development and testing across projects.

/**
 * Link local packages for development
 * Creates symlinks for local development workflow
 */
pnpm link [path] [options]
pnpm ln [path] [options]

Options:

  • --global, -g - Link to global packages
  • --dir <path> - Specify target directory

Usage Examples:

# Link current package globally
pnpm link

# Link to specific package
pnpm link ../my-other-package

# Link global package to current project
pnpm link --global some-package

Unlink Packages

Remove previously created package links.

/**
 * Remove package links
 * Removes symlinks created by pnpm link
 */
pnpm unlink [pkg] [options]
pnpm dislink [pkg] [options]

Usage Examples:

# Unlink current package
pnpm unlink

# Unlink specific package
pnpm unlink some-package

Clean Install (CI)

Perform clean installation optimized for continuous integration environments.

/**
 * Clean install from lockfile for CI environments
 * Removes node_modules and installs from lockfile only
 */
pnpm ci [options]
pnpm clean-install [options]
pnpm ic [options]
pnpm install-clean [options]

Usage Examples:

# Clean install for CI
pnpm ci

# Clean install with production only
pnpm ci --production

Import Lockfiles

Generate pnpm-lock.yaml from other package manager lockfiles.

/**
 * Import lockfile from other package managers
 * Converts package-lock.json or yarn.lock to pnpm-lock.yaml
 */
pnpm import [options]

Usage Examples:

# Import from package-lock.json
pnpm import

# Import in workspace
pnpm import --recursive

Prune Dependencies

Remove extraneous packages not listed in package.json.

/**
 * Remove extraneous packages
 * Cleans up packages not in package.json
 */
pnpm prune [options]

Options:

  • --production - Remove devDependencies
  • --no-optional - Remove optionalDependencies

Usage Examples:

# Remove all extraneous packages
pnpm prune

# Remove devDependencies (production mode)
pnpm prune --production

Deduplicate Dependencies

Remove duplicate dependencies by updating the lockfile.

/**
 * Remove duplicate dependencies
 * Optimizes dependency tree in lockfile
 */
pnpm dedupe [options]

Usage Examples:

# Deduplicate all dependencies
pnpm dedupe

Fetch Packages

Download packages to the store without installing to node_modules.

/**
 * Download packages to store without installing
 * Pre-populates store for faster subsequent installs
 */
pnpm fetch [options]

Options:

  • --dev - Fetch devDependencies
  • --prod - Fetch production dependencies only

Usage Examples:

# Fetch all dependencies
pnpm fetch

# Fetch production dependencies only
pnpm fetch --prod

Rebuild Packages

Rebuild native modules and run install scripts.

/**
 * Rebuild native modules
 * Recompiles packages with native dependencies
 */
pnpm rebuild [pkg] [options]
pnpm rb [pkg] [options]

Usage Examples:

# Rebuild all packages
pnpm rebuild

# Rebuild specific package
pnpm rebuild node-sass

# Rebuild in workspace
pnpm rebuild --recursive

Patch Management

Create and manage package patches for local modifications.

/**
 * Create package patches for local modifications
 * Allows temporary fixes to packages
 */
pnpm patch <pkg> [options]

Usage Examples:

# Create patch for package
pnpm patch react@18.2.0

# Patch with specific edit directory
pnpm patch lodash --edit-dir /tmp/lodash-patch

Commit Package Patches

Commit changes made to a patched package.

/**
 * Commit changes to package patch
 * Finalizes modifications made during patch editing
 */
pnpm patch-commit <path> [options]

Usage Examples:

# Commit patch changes
pnpm patch-commit /tmp/pnpm-patch-123

# Commit with specific patch directory
pnpm patch-commit ./patches/react-patch

Remove Package Patches

Remove package patches and revert to original versions.

/**
 * Remove package patch
 * Reverts package to unpatched state
 */
pnpm patch-remove <pkg> [options]

Usage Examples:

# Remove patch for package
pnpm patch-remove react@18.2.0

# Remove all patches
pnpm patch-remove --all

Pack Packages

Create package tarballs for distribution and publishing.

/**
 * Create package tarballs for distribution
 * Creates .tgz files ready for publishing or sharing
 */
pnpm pack [options]

Options:

  • --pack-destination <dir> - Specify output directory for tarball
  • --pack-gzip-level <level> - Set compression level (0-9)

Usage Examples:

# Pack current package
pnpm pack

# Pack with custom destination
pnpm pack --pack-destination ./dist

# Pack with custom compression
pnpm pack --pack-gzip-level 9

Publish Packages

Publish packages to the npm registry or private registries.

/**
 * Publish packages to registry
 * Uploads package to npm registry or private registry
 */
pnpm publish [tarball|folder] [options]

Options:

  • --tag <tag> - Publish with specific tag (default: latest)
  • --access <public|restricted> - Set package access level
  • --registry <url> - Specify registry URL
  • --otp <token> - One-time password for 2FA
  • --dry-run - Show what would be published without publishing
  • --no-git-checks - Skip git status checks
  • --recursive, -r - Publish in all workspace packages

Usage Examples:

# Publish current package
pnpm publish

# Publish with tag
pnpm publish --tag beta

# Publish as public package
pnpm publish --access public

# Dry run to check what would be published
pnpm publish --dry-run

# Publish all workspace packages
pnpm publish --recursive

# Publish specific tarball
pnpm publish my-package-1.0.0.tgz

Install with Tessl CLI

npx tessl i tessl/npm-pnpm

docs

configuration.md

index.md

package-inspection.md

package-management.md

script-running.md

store-management.md

workspace-management.md

tile.json