| name | prettierignore |
| description | Generates .prettierignore to exclude build outputs, dependencies, and generated files from Prettier formatting. Prevents formatting of dist/, node_modules/, and coverage/ directories. |
Prettier Ignore Skill
Purpose
Generate .prettierignore file to exclude build outputs, dependencies, and generated files from Prettier formatting.
🚨 MANDATORY FILE COUNT
Expected Output: 1 file
.prettierignore(standard format)
🔍 BEFORE GENERATING - CRITICAL RESEARCH REQUIRED
Perform these checks in order before generating the file:
Prettier Version: Verify latest stable version and ignore file support
- Run:
npm view prettier version - Check documentation: Confirm
.prettierignoreformat still supported - If deprecated: Use alternative format (e.g., config-based ignore)
- Run:
Build Output Detection: Identify build directories from project config
- Check
vite.config.tsorvite.config.js:- Look for
build.outDirproperty (default:dist) - If custom output dir found → Use that directory name
- Look for
- Check
package.jsonscripts:- Look for build output paths in scripts
- Default: Use
dist/if no custom output detected
- Check
Test Coverage Detection: Check if test framework generates coverage reports
- Check for test framework (from jest-config or vitest-config skills):
- If
jest.config.jsexists → CheckcoverageDirectory(default:coverage/) - If
vitest.config.tsexists → Checktest.coverage.reportsDirectory
- If
- Check
package.jsontest scripts:- Look for
--coverageflag or coverage directory references
- Look for
- Default: Include
coverage/in ignore patterns
- Check for test framework (from jest-config or vitest-config skills):
Package Manager Detection: Identify which package manager is used
- Check for lock files:
package-lock.json→ npmyarn.lock→ yarnpnpm-lock.yaml→ pnpm
- Note: Lock files should NOT be in
.prettierignore(formatting not applicable) - Always exclude:
node_modules/
- Check for lock files:
Minified/Bundled Files: Check for generated JavaScript patterns
- Standard patterns:
*.min.js,*.bundle.js - Check build config: Look for additional minified output patterns
- Always exclude: Prevents formatting of production bundles
- Standard patterns:
Verify Glob Pattern Support: Confirm pattern syntax compatibility
- Reference: https://prettier.io/docs/en/ignore.html
- Test patterns: Ensure glob syntax matches Prettier's expectations
- Common patterns:
*/,**/*.ext, negation with!
Cross-Skill Coordination: Verify consistency with other ignore files
- Check
.gitignore: Ensure.prettierignoredoesn't format git-ignored generated files - Check
.eslintignore: Similar exclusion patterns should align - Principle: Don't format files that are ignored by version control or linting
- Check
Performance Optimization: Validate ignore patterns reduce unnecessary processing
- Large directories:
node_modules/,dist/,build/significantly impact performance - Generated files: Coverage reports, minified bundles don't need formatting
- Benchmark: Prettier should skip excluded files entirely (zero processing time)
- Large directories:
Execution Checklist
Execute in this order:
-
- Verify
.prettierignoreformat is still supported by latest Prettier
- Verify
-
- Detect build output directory from vite.config.ts (default:
dist/)
- Detect build output directory from vite.config.ts (default:
-
- Detect test coverage directory from test config (default:
coverage/)
- Detect test coverage directory from test config (default:
-
- Identify package manager (npm/yarn/pnpm) for node_modules exclusion
-
- Verify glob patterns are valid Prettier ignore syntax
-
- Cross-check with
.gitignorefor consistency
- Cross-check with
-
- Generate
.prettierignorewith minimal essential exclusions
- Generate
-
- Run validation script to confirm file exists and patterns are valid
Output
Primary Format: .prettierignore
# Build outputs
dist/
build/
# Dependencies
node_modules/
# Test coverage
coverage/
# Minified/bundled files
*.min.js
*.bundle.js
Template
See: examples.md in this directory for complete template and detailed examples.
🛑 BLOCKING VALIDATION - MUST RUN AFTER FILE GENERATION
Validation Script
Run this script after generating .prettierignore to verify correctness:
#!/bin/bash
# Prettier Ignore Validation Script
echo "🔍 Validating .prettierignore..."
# Check if file exists
if [ ! -f ".prettierignore" ]; then
echo "❌ BLOCKING ERROR: .prettierignore file not found"
exit 1
fi
# Check if file is not empty
if [ ! -s ".prettierignore" ]; then
echo "❌ BLOCKING ERROR: .prettierignore is empty"
exit 1
fi
# Check for required patterns
REQUIRED_PATTERNS=("dist/" "node_modules/" "coverage/")
for pattern in "${REQUIRED_PATTERNS[@]}"; do
if ! grep -q "$pattern" .prettierignore; then
echo "⚠️ WARNING: Missing recommended pattern: $pattern"
fi
done
# Check glob pattern syntax (basic validation)
if grep -qE '^[^#].*\*\*.*\*\*' .prettierignore; then
echo "⚠️ WARNING: Potential invalid glob pattern (multiple **)"
fi
echo "✅ .prettierignore validation passed"
exit 0
Usage: bash validate-prettierignore.sh
Manual Verification
After generation, manually verify:
- File exists:
ls -la .prettierignore - Content check:
cat .prettierignore - Pattern test:
prettier --check "**/*" --ignore-path .prettierignore(should skip excluded paths) - Performance test: Verify Prettier runs faster with ignore file (compare with/without)
Key Features
- Minimal Exclusions: Only essential patterns (build, deps, coverage, minified)
- Performance Optimized: Skips large directories that don't need formatting
- Build-Aware: Automatically detects custom build output directories
- Coverage-Aware: Excludes test coverage reports based on test framework config
- Glob Patterns: Uses standard ignore syntax compatible with Prettier
- Cross-Tool Consistency: Aligns with
.gitignoreand.eslintignore
Pattern Philosophy
- Build outputs: Never format generated production code
- Dependencies: Skip third-party code in node_modules
- Coverage reports: Exclude auto-generated test reports
- Minified files: Don't format compressed/bundled JavaScript
- Performance: Only ignore what's necessary for speed improvement
Configuration Strategy
- Minimal approach: Keep ignore list short and focused
- No source code: Never exclude
src/or application code - No configs: Format all config files (package.json, tsconfig.json, etc.)
- No lock files: These don't apply to Prettier (not formatted)
- Glob efficiency: Use directory patterns (
dir/) over file globs when possible
Integration Considerations
- Git alignment: Ensure git-ignored build outputs are also Prettier-ignored
- CI/CD: Verify ignore patterns work in automated formatting checks
- Pre-commit hooks: Lint-staged should respect
.prettierignorepatterns - Editor plugins: VSCode Prettier extension respects this file
Maintenance Considerations
- Prettier updates: Check release notes for ignore file format changes
- Build config changes: Update ignore patterns if output directory changes
- New generated files: Add patterns for new auto-generated content
- Performance monitoring: Verify ignore patterns still provide speed benefits