
nx-monorepo-generator
by cognoco
SKILL.md
name: nx-monorepo-generator
description: Use when adding Jest testing configuration to Nx projects, running nx g @nx/jest:configuration, setting up testing infrastructure, or troubleshooting tests that fail after running the Jest generator. Ensures proper TypeScript moduleResolution (nodenext), testing enhancement libraries (jest-dom, user-event, MSW), and monorepo pattern adherence. Triggers: "add tests", "setup Jest", "configure testing", "Jest not working", "moduleResolution error", "tests failing after generator"
Nx Monorepo Generator - Jest Configuration Workflow
The Nx Jest generator produces defaults that conflict with this workspace's standards. This skill ensures all mandatory post-generation fixes are applied.
Phase 1: Determine Project Type
Identify the project type before generating:
| Type | Examples | Testing Needs |
|---|---|---|
| UI | web apps, mobile | Full stack: jest-dom, user-event, MSW |
| Node | server, APIs | jest-dom + conditional MSW |
| Logic | schemas, utils | Basic Jest only |
How to identify:
- Check
project.jsonexecutors (React/Next.js = UI, Node = server) - Schema/utility libraries = Logic
- When uncertain, ask the user
Phase 2: Generate Configuration
pnpm exec nx g @nx/jest:configuration <project-name>
Creates: jest.config.ts, tsconfig.spec.json, updates project.json
Warning: Generated config has incorrect defaults - proceed to Phase 3.
Phase 3: Post-Generation Fixes
Execute ALL applicable steps. See references/post-gen-checklist.md for full details.
| Step | UI | Node | Logic | Script |
|---|---|---|---|---|
| Install testing libs | ✅ | ✅ | ❌ | scripts/install-testing-libs.sh |
| Create jest.setup.ts | ✅ | ❌ | ❌ | Manual |
| Update jest.config.ts | ✅ | ❌ | ❌ | Manual |
| Fix moduleResolution | ✅ | ✅ | ✅ | scripts/fix-tsconfig-spec.sh |
| Verify Jest types | ✅ | ✅ | ✅ | scripts/validate-jest-config.sh |
| Clean production config | ✅ | ✅ | ✅ | scripts/validate-jest-config.sh |
Critical Fix: TypeScript moduleResolution
In tsconfig.spec.json, change:
"module": "commonjs"→"module": "nodenext""moduleResolution": "node10"→"moduleResolution": "nodenext"
Why: Workspace uses customConditions requiring modern module resolution.
Phase 4: Validation
# Automated validation
scripts/validate-jest-config.sh <project-path>
# Run tests
pnpm exec nx run <project-name>:test
Success indicators:
- ✅ Tests run without TypeScript errors
- ✅ No module resolution warnings
- ✅ Coverage reports generate correctly
References
references/post-gen-checklist.md- Step-by-step checklist with code examplesreferences/jest-config-patterns.md- Configuration structure and rationalereferences/testing-standards.md- user-event, MSW, jest-dom patterns
Scripts
scripts/validate-jest-config.sh <path>- Validate configuration against standardsscripts/install-testing-libs.sh <type> <path>- Install testing packages by project typescripts/fix-tsconfig-spec.sh <path>- Auto-fix moduleResolution settings
Key Principle
Generated code rarely matches monorepo patterns. Post-generation fixes are MANDATORY. This skill ensures consistency and prevents pattern drift that causes mysterious failures.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です