Claude Code Plugins

Community-maintained marketplace

Feedback

npm-workspaces

@mcclowes/omg
1
0

Use when managing npm workspaces monorepos - package dependencies, build ordering, cross-package development, and publishing workflows

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name npm-workspaces
description Use when managing npm workspaces monorepos - package dependencies, build ordering, cross-package development, and publishing workflows

npm Workspaces

Quick Start

// Root package.json
{
  "name": "my-monorepo",
  "private": true,
  "workspaces": ["packages/*"],
  "scripts": {
    "build": "npm run build --workspaces",
    "test": "npm run test --workspaces"
  }
}

Core Commands

Command Purpose
npm install Install all workspace deps
npm run build --workspaces Run in all workspaces
npm run build -w pkg-name Run in specific workspace
npm run build --if-present Skip if script missing

Cross-Package Dependencies

// packages/compiler/package.json
{
  "name": "my-compiler",
  "dependencies": {
    "my-parser": "^1.0.0"  // Reference sibling package
  }
}
  • Use semver (not file:) for publishable packages
  • npm symlinks local packages automatically
  • Build order matters: dependencies before dependents

Build Ordering

// Root package.json - explicit order
{
  "scripts": {
    "build": "npm run build -w my-parser && npm run build -w my-compiler && npm run build -w my-cli"
  }
}

Or use a tool like wireit or turbo for dependency-aware builds.

Publishing

# Update versions (from root)
npm version patch -w my-parser
npm version patch -w my-compiler

# Publish all
npm publish --workspaces

# Publish specific
npm publish -w my-parser

Tips

  • Use "private": true in root to prevent accidental publish
  • Run npm ls to verify dependency resolution
  • Use npm explain <pkg> to debug why a package is installed
  • Add engines field to enforce Node version
  • Use --include-workspace-root to also run in root