nx-workspace

작성자: nrwl

Nx 워크스페이스를 탐색하고 이해합니다. 워크스페이스, 프로젝트 또는 작업에 대한 질문에 답할 때 사용하세요. nx 명령이 실패하거나 작업을 실행하기 전에 사용 가능한 대상/구성을 확인해야 할 때도 사용하세요. 예: '이 워크스페이스에 어떤 프로젝트가 있나요?', '프로젝트 X는 어떻게 구성되어 있나요?', '라이브러리 Y에 의존하는 것은 무엇인가요?', '실행할 수 있는 대상은 무엇인가요?', '작업 구성을 찾을 수 없음', 'nx 작업 실패 디버깅'.

npx skills add https://github.com/nrwl/nx-ai-agents-config --skill nx-workspace

Nx Workspace Exploration

This skill provides read-only exploration of Nx workspaces. Use it to understand workspace structure, project configuration, available targets, and dependencies.

Keep in mind that you might have to prefix commands with npx/pnpx/yarn if nx isn't installed globally. Check the lockfile to determine the package manager in use.

Listing Projects

Use nx show projects to list projects in the workspace.

The project filtering syntax (-p/--projects) works across many Nx commands including nx run-many, nx release, nx show projects, and more. Filters support explicit names, glob patterns, tag references (e.g. tag:name), directories, and negation (e.g. !project-name).

# List all projects
nx show projects

# Filter by pattern (glob)
nx show projects --projects "apps/*"
nx show projects --projects "shared-*"

# Filter by tag
nx show projects --projects "tag:publishable"
nx show projects -p 'tag:publishable,!tag:internal'

# Filter by target (projects that have a specific target)
nx show projects --withTarget build

# Combine filters
nx show projects --type lib --withTarget test
nx show projects --affected --exclude="*-e2e"
nx show projects -p "tag:scope:client,packages/*"

# Negate patterns
nx show projects -p '!tag:private'
nx show projects -p '!*-e2e'

# Output as JSON
nx show projects --json

Project Configuration

Use nx show project <name> --json to get the full resolved configuration for a project.

Important: Do NOT read project.json directly - it only contains partial configuration. The nx show project --json command returns the full resolved config including inferred targets from plugins.

You can read the full project schema at node_modules/nx/schemas/project-schema.json to understand nx project configuration options.

# Get full project configuration
nx show project my-app --json

# Extract specific parts from the JSON
nx show project my-app --json | jq '.targets'
nx show project my-app --json | jq '.targets.build'
nx show project my-app --json | jq '.targets | keys'

# Check project metadata
nx show project my-app --json | jq '{name, root, sourceRoot, projectType, tags}'

Target Information

Targets define what tasks can be run on a project.

# List all targets for a project
nx show project my-app --json | jq '.targets | keys'

# Get full target configuration
nx show project my-app --json | jq '.targets.build'

# Check target executor/command
nx show project my-app --json | jq '.targets.build.executor'
nx show project my-app --json | jq '.targets.build.command'

# View target options
nx show project my-app --json | jq '.targets.build.options'

# Check target inputs/outputs (for caching)
nx show project my-app --json | jq '.targets.build.inputs'
nx show project my-app --json | jq '.targets.build.outputs'

# Find projects with a specific target
nx show projects --withTarget serve
nx show projects --withTarget e2e

Workspace Configuration

Read nx.json directly for workspace-level configuration. You can read the full project schema at node_modules/nx/schemas/nx-schema.json to understand nx project configuration options.

# Read the full nx.json
cat nx.json

# Or use jq for specific sections
cat nx.json | jq '.targetDefaults'
cat nx.json | jq '.namedInputs'
cat nx.json | jq '.plugins'
cat nx.json | jq '.generators'

Key nx.json sections:

  • targetDefaults - Default configuration applied to all targets of a given name
  • namedInputs - Reusable input definitions for caching
  • plugins - Nx plugins and their configuration
  • ...and much more, read the schema or nx.json for details

Affected Projects

If the user is asking about affected projects, read the affected projects reference for detailed commands and examples.

Common Exploration Patterns

"What's in this workspace?"

nx show projects
nx show projects --type app
nx show projects --type lib

"How do I build/test/lint project X?"

nx show project X --json | jq '.targets | keys'
nx show project X --json | jq '.targets.build'

"What depends on library Y?"

# Use the project graph to find dependents
nx graph --print | jq '.graph.dependencies | to_entries[] | select(.value[].target == "Y") | .key'

Programmatic Answers

When processing nx CLI results, use command-line tools to compute the answer programmatically rather than counting or parsing output manually. Always use --json flags to get structured output that can be processed with jq, grep, or other tools you have installed locally.

Listing Projects

nx show projects --json

Example output:

["my-app", "my-app-e2e", "shared-ui", "shared-utils", "api"]

Common operations:

# Count projects
nx show projects --json | jq 'length'

# Filter by pattern
nx show projects --json | jq '.[] | select(startswith("shared-"))'

# Get affected projects as array
nx show projects --affected --json | jq '.'

Project Details

nx show project my-app --json

Example output:

{
  "root": "apps/my-app",
  "name": "my-app",
  "sourceRoot": "apps/my-app/src",
  "projectType": "application",
  "tags": ["type:app", "scope:client"],
  "targets": {
    "build": {
      "executor": "@nx/vite:build",
      "options": { "outputPath": "dist/apps/my-app" }
    },
    "serve": {
      "executor": "@nx/vite:dev-server",
      "options": { "buildTarget": "my-app:build" }
    },
    "test": {
      "executor": "@nx/vite:test",
      "options": {}
    }
  },
  "implicitDependencies": []
}

Common operations:

# Get target names
nx show project my-app --json | jq '.targets | keys'

# Get specific target config
nx show project my-app --json | jq '.targets.build'

# Get tags
nx show project my-app --json | jq '.tags'

# Get project root
nx show project my-app --json | jq -r '.root'

Project Graph

nx graph --print

Example output:

{
  "graph": {
    "nodes": {
      "my-app": {
        "name": "my-app",
        "type": "app",
        "data": { "root": "apps/my-app", "tags": ["type:app"] }
      },
      "shared-ui": {
        "name": "shared-ui",
        "type": "lib",
        "data": { "root": "libs/shared-ui", "tags": ["type:ui"] }
      }
    },
    "dependencies": {
      "my-app": [
        { "source": "my-app", "target": "shared-ui", "type": "static" }
      ],
      "shared-ui": []
    }
  }
}

Common operations:

# Get all project names from graph
nx graph --print | jq '.graph.nodes | keys'

# Find dependencies of a project
nx graph --print | jq '.graph.dependencies["my-app"]'

# Find projects that depend on a library
nx graph --print | jq '.graph.dependencies | to_entries[] | select(.value[].target == "shared-ui") | .key'

Troubleshooting

"Cannot find configuration for task X:target"

# Check what targets exist on the project
nx show project X --json | jq '.targets | keys'

# Check if any projects have that target
nx show projects --withTarget target

"The workspace is out of sync"

nx sync
nx reset  # if sync doesn't fix stale cache

관련 스킬

signals-scout-anomaly-detection
posthog
PostHog 프로젝트에서 가장 많이 조회된 대시보드와 인사이트를 모니터링하여 최근 이상 징후(갑작스러운 급증, 하락, 평탄화, 추세 변화 등)를 탐지하는 신호 스카우트입니다.
official
writing-tech-breakdowns
bitwarden
DEPRECATED — superseded by `starting-breakdown` and `developing-breakdown-spec`. Retained for historical reference only. Drafted engineering work breakdowns…
official
jira
microsoft
Jira 이슈 워크플로우로, Jira REST API를 통해 검색, 이슈 업데이트, 상태 전환, 댓글, 필드 탐색을 수행합니다. JQL로 검색하거나 세부 내용을 확인해야 할 때 사용하세요.
official
azuresql-db-import
microsoft
기존 Azure SQL Database 또는 SQL Server 스키마와 데이터를 SqlPackage를 사용하여 로컬 Azure SQL Developer로 가져옵니다. "bacpac 가져오기" 요청 시 사용합니다…
official
test-all
facebook
병렬 테스트 오케스트레이터. Task 하위 에이전트와 iwsdk CLI를 통해 9개의 모든 테스트 스위트를 동시에 실행합니다. 빌드, 예제 설정, 개발 서버, 에이전트 실행 등을 처리합니다.
official
azure-resource-manager-playwright-dotnet
microsoft
Microsoft Playwright Testing 작업 영역을 Azure Resource Manager를 통해 프로비저닝 및 관리하기 위한 관리 평면 SDK입니다.
official
p-image
qu-skills
inference.sh CLI를 통해 Pruna P-Image 모델로 이미지를 생성합니다. 모델: P-Image, P-Image-LoRA, P-Image-Edit, P-Image-Edit-LoRA. 기능: 텍스트-이미지, 이미지 편집, LoRA 스타일, 다중 이미지 합성, 빠른 추론. Pruna는 품질 저하 없이 모델 속도를 최적화합니다. 트리거: pruna, p-image, pruna image, fast image generation, optimized flux, pruna ai, p image, fast ai image, economic image generation, cheap image generation
creativeimagemedia
n8n-code-nodes
n8n-io
사용자가 코드 노드를 사용하려 하거나, n8n에서 JavaScript나 Python 작성을 언급하거나, 워크플로우 설계 중 사용자 정의 로직이 나올 때 사용합니다. "Code…"에서 트리거됩니다.
official