nx-monorepo

This skill provides expert-level capabilities for Nx monorepo management. Nx is the standard build orchestrator for this AI-native platform due to its official MCP server integration.

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 "nx-monorepo" with this command: npx skills add mjunaidca/mjs-agent-skills/mjunaidca-mjs-agent-skills-nx-monorepo

Nx Monorepo

Overview

This skill provides expert-level capabilities for Nx monorepo management. Nx is the standard build orchestrator for this AI-native platform due to its official MCP server integration.

Why Nx: Official MCP server, TypeScript-native, 5-minute setup, auto-generates CLAUDE.md/AGENTS.md for AI assistants.

MCP Tools Available

nx_docs - Query Nx documentation nx_available_plugins - List official Nx plugins (NOT installed by default)

Key Insight: MCP provides documentation lookup. Use Nx CLI for all operations.

Core CLI Commands

Project Graph Analysis

View interactive project graph

nx graph

JSON output for programmatic use

nx graph --file=output.json

Show dependencies of specific project

nx graph --focus=my-app

Show what depends on a project

nx graph --affected

Affected Detection

What's affected since main?

nx affected -t build nx affected -t test nx affected -t lint

Compare against specific base

nx affected -t build --base=origin/main --head=HEAD

Show affected projects only

nx show projects --affected

Running Tasks

Run task for all projects

nx run-many -t build nx run-many -t test

Run for specific projects

nx run-many -t build --projects=app-a,lib-b

Run with parallelism control

nx run-many -t build --parallel=4

Single project

nx build my-app nx test my-lib

Code Generation

List available generators

nx list @nx/next nx list @nx/react

Generate new application

nx g @nx/next:app my-app nx g @nx/react:app my-frontend

Generate library

nx g @nx/js:lib shared-utils nx g @nx/react:lib ui-components

Dry run (preview)

nx g @nx/next:app my-app --dry-run

Configuration Files

nx.json (Workspace Config)

{ "targetDefaults": { "build": { "dependsOn": ["^build"], "cache": true }, "test": { "cache": true }, "lint": { "cache": true } }, "namedInputs": { "default": ["{projectRoot}//*"], "production": ["default", "!{projectRoot}//*.spec.ts"] }, "defaultBase": "main" }

project.json (Project Config)

{ "name": "my-app", "projectType": "application", "targets": { "build": { "executor": "@nx/next:build", "outputs": ["{options.outputPath}"], "options": { "outputPath": "dist/apps/my-app" } }, "serve": { "executor": "@nx/next:server", "options": { "buildTarget": "my-app:build" } } } }

Caching

Local Cache

Cache is automatic for cacheable targets

nx build my-app # First run: executes nx build my-app # Second run: cached (instant)

Clear cache

nx reset

Nx Cloud (Remote Cache)

Connect to Nx Cloud

npx nx connect

Or add manually

nx g @nx/workspace:ci-workflow

Verify connection

nx run-many -t build

Look for: "Remote cache hit"

Cache Inputs

// In project.json or nx.json { "targets": { "build": { "inputs": [ "default", "^production", { "externalDependencies": ["next"] } ] } } }

Common Patterns

Adding a New JS/TS App

1. Add plugin (if not already installed)

pnpm nx add @nx/next # For Next.js pnpm nx add @nx/react # For React pnpm nx add @nx/node # For Node/Express

2. Generate app

pnpm nx g @nx/next:app dashboard --directory=apps/dashboard

3. Verify in graph

pnpm nx graph --focus=dashboard

4. Build & Serve

pnpm nx build dashboard pnpm nx serve dashboard

Adding a Python App (uv Workspace)

Python projects use uv workspaces (similar to pnpm workspaces for JS) with manual project.json for Nx:

1. Create directory and initialize

mkdir -p apps/my-python-app cd apps/my-python-app uv init uv add --group dev pytest ruff mypy cd ../..

2. Add to uv workspace (root pyproject.toml)

Edit root pyproject.toml :

[tool.uv.workspace] members = [ "apps/panaversity-fs-py", "apps/my-python-app", # Add new project here ]

3. Sync all Python deps from root

uv sync --extra dev

apps/my-python-app/project.json (for Nx):

{ "name": "my-python-app", "projectType": "application", "targets": { "build": { "command": "uv build", "options": { "cwd": "apps/my-python-app" } }, "test": { "command": "uv run --extra dev pytest", "options": { "cwd": "apps/my-python-app" } }, "lint": { "command": "uv run --extra dev ruff check .", "options": { "cwd": "apps/my-python-app" } } } }

4. Verify Nx recognizes it

pnpm nx show projects pnpm nx graph --focus=my-python-app

5. Run tasks via Nx

pnpm nx test my-python-app

Shared Python Libraries

Create libraries that multiple Python apps can import:

mkdir -p libs/auth-common-py cd libs/auth-common-py uv init --lib cd ../..

Add to workspace members, then uv sync

Reference in dependent projects:

apps/my-python-app/pyproject.toml

[project] dependencies = ["auth-common-py"]

[tool.uv.sources] auth-common-py = { workspace = true }

Key Insight: uv manages Python deps via workspace, Nx orchestrates tasks. Single uv.lock at root.

Creating Shared Libraries

JS/TS UI library

pnpm nx g @nx/react:lib ui --directory=libs/shared/ui

JS/TS Utility library

pnpm nx g @nx/js:lib utils --directory=libs/shared/utils

Domain library

pnpm nx g @nx/js:lib auth --directory=libs/domain/auth

CI Pipeline (GitHub Actions)

name: CI on: [push, pull_request]

jobs: main: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0

  - uses: pnpm/action-setup@v2
  - uses: actions/setup-node@v4
    with:
      node-version: 20
      cache: 'pnpm'

  - run: pnpm install --frozen-lockfile

  # Affected-only builds
  - run: npx nx affected -t lint build test --base=origin/main

Troubleshooting

"Cannot find project"

Regenerate project graph

nx reset nx graph

Cache Not Working

Verify target is cacheable

cat nx.json | grep -A5 "targetDefaults"

Check inputs are stable

nx build my-app --verbose

Dependency Issues

Show project dependencies

nx graph --focus=my-app

Check for circular deps

nx graph --file=graph.json

Review edges in JSON

Quick Reference

Task Command

Interactive graph pnpm nx graph

Affected build pnpm nx affected -t build

Run all tests pnpm nx run-many -t test

Generate JS/TS app pnpm nx g @nx/next:app name

Generate JS/TS lib pnpm nx g @nx/js:lib name

Add plugin pnpm nx add @nx/next

Clear cache pnpm nx reset

Show projects pnpm nx show projects

List generators pnpm nx list @nx/next

Python-Specific (uv)

Task Command

Init Python project cd apps/name && uv init

Add runtime dep uv add <package>

Add dev dep uv add --group dev <package>

Sync deps uv sync --extra dev

Run via Nx pnpm nx test my-python-app

Related Skills

  • monorepo-workflow: PR stacking, trunk-based development, code review

  • monorepo-team-lead: CODEOWNERS, human-AI task routing, RFC process

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.

Automation

working-with-spreadsheets

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

browsing-with-playwright

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

working-with-documents

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

styling-with-shadcn

No summary provided by upstream source.

Repository SourceNeeds Review