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

Skills ที่เกี่ยวข้อง

okx-task-watch
okx
We need to translate the given text from English to Thai, preserving the name "okx-task-watch" and other technical terms like "okx-a2a user watch", "okx-a2a user outdated-list", etc. The text includes a mix of Thai and English phrases already. The instruction says to translate only the text inside <text>, and not to include the name unless it appears in the source text. The name "okx-task-watch" is not in the source text, so we don't include it. The source text has some Thai phrases already: "监听任务进展 / 帮我盯着任务 / 任务有动静告诉我 / 历史消息 / 未读消息 / 未决策 / 待决策 / 继续监听" - these are Chinese, not Thai. The target language is Thai, so we need to translate the entire text into Thai, including those Chinese phrases. Also the English parts. We must preserve product names, protocol names, URLs, numbers, technical terms. So "okx-a2a user watch", "okx-a
developmentapiproductivity
code-review
sentry
กรอบการตรวจสอบโค้ดตามแนวทางปฏิบัติทางวิศวกรรมของ Sentry สำหรับการตรวจสอบคำขอรวมโค้ดและการประเมินคุณภาพโค้ด ครอบคลุมปัญหาสำคัญหกด้าน ได้แก่ ข้อผิดพลาดขณะรันไทม์ ปัญหาคอขวดด้านประสิทธิภาพ ผลข้างเคียง ความเข้ากันได้ย้อนหลัง ปัญหาคำสั่ง ORM และช่องโหว่ด้านความปลอดภัย รวมถึงแนวทางการประเมินการออกแบบสำหรับการโต้ตอบของส่วนประกอบ ความสอดคล้องทางสถาปัตยกรรม และความขัดแย้งของข้อกำหนด ต้องการความครอบคลุมการทดสอบที่เหมาะสมทั้งการทดสอบเชิงฟังก์ชัน การทดสอบเชิงบูรณาการ และการทดสอบแบบครบวงจร พร้อมการตรวจสอบกรณีขอบ...
official
deep-agents
langchain-ai
สร้างเอเจนต์ที่ครบครันด้วยการวางแผน การจัดการบริบท การมอบหมายงานให้เอเจนต์ย่อย และการทำงานในสภาพแวดล้อมที่ปลอดภัย ใช้สำหรับงานที่ซับซ้อนและมีหลายขั้นตอนซึ่งต้องการ...
official
tmux
firecrawl
ควบคุมเซสชัน tmux จากระยะไกลสำหรับ CLI แบบโต้ตอบ โดยการส่งคีย์สโตรกและดึงข้อมูลจากเอาต์พุตของพาเนล
official
mcloud-projects
medusajs
ดำเนินการคำสั่ง mcloud projects เพื่อแสดงรายการ รับ หรือลบโปรเจกต์ Cloud ใช้เมื่อค้นหาโปรเจกต์ แก้ไขที่อยู่โปรเจกต์ตามชื่อ หรือดึงข้อมูล...
official
build-zoom-rest-api-app
anthropic
ทักษะอ้างอิงสำหรับ Zoom REST API ใช้หลังจากเลือกเวิร์กโฟลว์ที่ใช้ API เมื่อคุณต้องการเลือกเอนด์พอยต์ รูปแบบการจัดการทรัพยากร ข้อกำหนด OAuth …
official
ux-css-layout
microsoft
VS Code CSS ข้อตกลงร่วม, การจัดระเบียบไฟล์, การตั้งชื่อคลาส, ขนาดมาตรฐาน, เค้าโครง SplitView/Grid, เนื้อหาที่เลื่อนได้, เค้าโครงแบบตอบสนอง, และข้อความ…
official
best-practices
addyosmani
ใช้แนวปฏิบัติที่ดีที่สุดในการพัฒนาเว็บสมัยใหม่เพื่อความปลอดภัย ความเข้ากันได้ และคุณภาพของโค้ด ใช้เมื่อถูกขอให้ "ใช้แนวปฏิบัติที่ดีที่สุด" "ตรวจสอบความปลอดภัย" "ปรับปรุงโค้ดให้ทันสมัย" "ตรวจสอบคุณภาพโค้ด" หรือ "ตรวจสอบช่องโหว่
developmentcode-reviewsecurity