jscodeshift
35
总安装量
35
周安装量
#5910
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill jscodeshift
Agent 安装分布
claude-code
29
gemini-cli
27
antigravity
26
codex
26
opencode
26
windsurf
23
Skill 文档
Facebook/Meta jscodeshift Best Practices
Comprehensive best practices guide for jscodeshift codemod development, designed for AI agents and LLMs. Contains 40 rules across 8 categories, prioritized by impact from critical (parser configuration, AST traversal) to incremental (advanced patterns). Each rule includes detailed explanations, real-world examples, and specific impact metrics.
When to Apply
Reference these guidelines when:
- Writing new jscodeshift codemods for code migrations
- Debugging transform failures or unexpected behavior
- Optimizing codemod performance on large codebases
- Reviewing codemod code for correctness
- Testing codemods for edge cases and regressions
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Parser Configuration | CRITICAL | parser- |
| 2 | AST Traversal Patterns | CRITICAL | traverse- |
| 3 | Node Filtering | HIGH | filter- |
| 4 | AST Transformation | HIGH | transform- |
| 5 | Code Generation | MEDIUM | codegen- |
| 6 | Testing Strategies | MEDIUM | test- |
| 7 | Runner Optimization | LOW-MEDIUM | runner- |
| 8 | Advanced Patterns | LOW | advanced- |
Quick Reference
1. Parser Configuration (CRITICAL)
parser-typescript-config– Use correct parser for TypeScript filesparser-flow-annotation– Use Flow parser for Flow-typed codeparser-babel5-compat– Avoid default babel5compat for modern syntaxparser-export-declaration– Export parser from transform moduleparser-astexplorer-match– Match AST Explorer parser to jscodeshift parser
2. AST Traversal Patterns (CRITICAL)
traverse-find-specific-type– Use specific node types in find() callstraverse-two-pass-pattern– Use two-pass pattern for complex transformstraverse-early-return– Return early when no transformation neededtraverse-find-filter-pattern– Use find() with filter object over filter() chaintraverse-closest-scope– Use closestScope() for scope-aware transformstraverse-avoid-repeated-find– Avoid repeated find() calls for same node type
3. Node Filtering (HIGH)
filter-path-parent-check– Check parent path before transformationfilter-import-binding– Track import bindings for accurate usage detectionfilter-nullish-checks– Add nullish checks before property accessfilter-jsx-context– Distinguish JSX context from regular JavaScriptfilter-computed-properties– Handle computed property keys in filters
4. AST Transformation (HIGH)
transform-builder-api– Use builder API for creating AST nodestransform-replacewith-callback– Use replaceWith callback for context-aware transformstransform-insert-import– Insert imports at correct positiontransform-preserve-comments– Preserve comments when replacing nodestransform-renameto– Use renameTo for variable renamingtransform-remove-unused-imports– Remove unused imports after transformation
5. Code Generation (MEDIUM)
codegen-tosource-options– Configure toSource() for consistent formattingcodegen-preserve-style– Preserve original code style with recastcodegen-template-literals– Use template literals for complex node creationcodegen-print-width– Set appropriate print width for long lines
6. Testing Strategies (MEDIUM)
test-inline-snapshots– Use defineInlineTest for input/output verificationtest-negative-cases– Write negative test cases firsttest-dry-run-exploration– Use dry run mode for codebase explorationtest-fixture-files– Use fixture files for complex test casestest-parse-errors– Test for parse error handling
7. Runner Optimization (LOW-MEDIUM)
runner-parallel-workers– Configure worker count for optimal parallelizationrunner-ignore-patterns– Use ignore patterns to skip non-source filesrunner-extensions-filter– Filter files by extensionrunner-batch-processing– Process large codebases in batchesrunner-verbose-output– Use verbose output for debugging transforms
8. Advanced Patterns (LOW)
advanced-compose-transforms– Compose multiple transforms into pipelinesadvanced-scope-analysis– Use scope analysis for safe variable transformsadvanced-multi-file-state– Share state across files with optionsadvanced-custom-collections– Create custom collection methods
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
Full Compiled Document
For a single comprehensive document containing all rules, see AGENTS.md.
Reference Files
| File | Description |
|---|---|
| AGENTS.md | Complete compiled guide with all rules |
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |