Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3706

nx-workspace-patterns

Configura e otimiza projetos usando Nx monorepo. É útil ao iniciar projetos, definir limites ou melhorar o cache de compilação.

O que ela faz

Esta ferramenta ajuda a organizar e otimizar projetos de software grandes usando uma estrutura chamada Nx monorepo. Ela define como as diferentes partes do seu código (aplicativos e bibliotecas) se relacionam e como elas são construídas e testadas de forma eficiente.

Quando usar

  • ✓Ao iniciar um novo projeto Nx.
  • ✓Ao definir limites entre diferentes partes do código.
  • ✓Ao otimizar a construção e testes para economizar tempo.

Exemplo do que pedir para a IA

“Como configuro meu projeto Nx para que as bibliotecas de 'ui' só possam usar outras bibliotecas de 'ui' ou 'util'?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/nx-workspace-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/nx-workspace-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela funciona definindo regras claras sobre como os componentes do seu código podem depender uns dos outros. Isso garante que as mudanças em uma parte não afetem inesperadamente outras partes, e permite que o Nx otimize o que precisa ser reconstruído ou testado.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill nx-workspace-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/nx-workspace-patterns/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões de Workspace Nx

Padrões de produção para gerenciamento de monorepos Nx.

Não use esta habilidade quando

  • A tarefa não estiver relacionada a padrões de workspace Nx
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Clarifique objetivos, restrições e entradas necessárias.
  • Aplique as melhores práticas relevantes e valide os resultados.
  • Forneça etapas acionáveis e verificação.

Use esta habilidade quando

  • Configurando novos workspaces Nx
  • Configurando limites de projeto
  • Otimizando CI com comandos afetados (affected)
  • Implementando cache remoto
  • Gerenciando dependências entre projetos
  • Migrando para Nx

Conceitos Principais

1. Arquitetura Nx

workspace/
├── apps/              # Deployable applications
│   ├── web/
│   └── api/
├── libs/              # Shared libraries
│   ├── shared/
│   │   ├── ui/
│   │   └── utils/
│   └── feature/
│       ├── auth/
│       └── dashboard/
├── tools/             # Custom executors/generators
├── nx.json            # Nx configuration
└── workspace.json     # Project configuration

2. Tipos de Biblioteca

Tipo Propósito Exemplo
feature Componentes inteligentes, lógica de negócios feature-auth
ui Componentes de apresentação ui-buttons
data-access Chamadas de API, gerenciamento de estado data-access-users
util Funções puras, utilitários util-formatting
shell Inicialização do aplicativo shell-web

Modelos

Modelo 1: Configuração nx.json

{
  "$schema": "./node_modules/nx/schemas/nx-schema.json",
  "npmScope": "myorg",
  "affected": {
    "defaultBase": "main"
  },
  "tasksRunnerOptions": {
    "default": {
      "runner": "nx/tasks-runners/default",
      "options": {
        "cacheableOperations": [
          "build",
          "lint",
          "test",
          "e2e",
          "build-storybook"
        ],
        "parallel": 3
      }
    }
  },
  "targetDefaults": {
    "build": {
      "dependsOn": ["^build"],
      "inputs": ["production", "^production"],
      "cache": true
    },
    "test": {
      "inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"],
      "cache": true
    },
    "lint": {
      "inputs": ["default", "{workspaceRoot}/.eslintrc.json"],
      "cache": true
    },
    "e2e": {
      "inputs": ["default", "^production"],
      "cache": true
    }
  },
  "namedInputs": {
    "default": ["{projectRoot}/**/*", "sharedGlobals"],
    "production": [
      "default",
      "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
      "!{projectRoot}/tsconfig.spec.json",
      "!{projectRoot}/jest.config.[jt]s",
      "!{projectRoot}/.eslintrc.json"
    ],
    "sharedGlobals": [
      "{workspaceRoot}/babel.config.json",
      "{workspaceRoot}/tsconfig.base.json"
    ]
  },
  "generators": {
    "@nx/react": {
      "application": {
        "style": "css",
        "linter": "eslint",
        "bundler": "webpack"
      },
      "library": {
        "style": "css",
        "linter": "eslint"
      },
      "component": {
        "style": "css"
      }
    }
  }
}

Modelo 2: Configuração de Projeto

// apps/web/project.json
{
  "name": "web",
  "$schema": "../../node_modules/nx/schemas/project-schema.json",
  "sourceRoot": "apps/web/src",
  "projectType": "application",
  "tags": ["type:app", "scope:web"],
  "targets": {
    "build": {
      "executor": "@nx/webpack:webpack",
      "outputs": ["{options.outputPath}"],
      "defaultConfiguration": "production",
      "options": {
        "compiler": "babel",
        "outputPath": "dist/apps/web",
        "index": "apps/web/src/index.html",
        "main": "apps/web/src/main.tsx",
        "tsConfig": "apps/web/tsconfig.app.json",
        "assets": ["apps/web/src/assets"],
        "styles": ["apps/web/src/styles.css"]
      },
      "configurations": {
        "development": {
          "extractLicenses": false,
          "optimization": false,
          "sourceMap": true
        },
        "production": {
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractLicenses": true
        }
      }
    },
    "serve": {
      "executor": "@nx/webpack:dev-server",
      "defaultConfiguration": "development",
      "options": {
        "buildTarget": "web:build"
      },
      "configurations": {
        "development": {
          "buildTarget": "web:build:development"
        },
        "production": {
          "buildTarget": "web:build:production"

…
Perguntas frequentes

O que é um 'monorepo'?

É uma forma de organizar um projeto grande onde todo o código (vários aplicativos e bibliotecas compartilhadas) fica em um único repositório, mas com estrutura e regras para mantê-lo organizado.

O que são 'apps' e 'libs'?

'Apps' são os aplicativos finais que os usuários usam (como um site ou um app móvel). 'Libs' são bibliotecas de código reutilizável que os apps podem usar (como componentes de interface ou funções de utilidade).

O que significa 'otimizar build caching'?

Significa que o Nx lembra os resultados de construções e testes anteriores. Se nada mudar, ele reutiliza os resultados em vez de refazer tudo, o que acelera muito o processo.

Detalhes

Descrição original do autor

Configure and optimize Nx monorepo workspaces. Use when setting up Nx, configuring project boundaries, optimizing build caching, or implementing affected commands.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3706
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas