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
Mensagem pronta para colar
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-patternsOu 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.mdConteú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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3706
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC