Swc Config Validator
by @charlie-morrison
Validate SWC config files (.swcrc, package.json#swc) for parser settings, transform conflicts, module type issues, and best practices. Use when validating SW...
clawhub install swc-config-validatorπ About This Skill
name: swc-config-validator description: Validate SWC config files (.swcrc, package.json#swc) for parser settings, transform conflicts, module type issues, and best practices. Use when validating SWC transpiler configs, auditing Next.js/Turbopack build setups, or linting swc config files.
SWC Config Validator
Validate .swcrc and package.json#swc for parser errors, invalid targets, transform conflicts, module type issues, minification problems, and best practices. Supports text, JSON, and summary output formats with CI-friendly exit codes.
Commands
# Full validation (all 22+ rules)
python3 scripts/swc_config_validator.py validate .swcrcQuick syntax/structure check only
python3 scripts/swc_config_validator.py check .swcrcExplain config in human-readable form
python3 scripts/swc_config_validator.py explain .swcrcSuggest improvements
python3 scripts/swc_config_validator.py suggest .swcrcJSON output (CI-friendly)
python3 scripts/swc_config_validator.py validate .swcrc --format jsonSummary only (pass/fail + counts)
python3 scripts/swc_config_validator.py validate .swcrc --format summaryStrict mode (warnings become errors)
python3 scripts/swc_config_validator.py validate .swcrc --strictValidate from package.json#swc
python3 scripts/swc_config_validator.py validate package.json
Rules (22+)
| # | Category | Severity | Rule | |---|----------|----------|------| | S1 | Structure | Error | File not found or unreadable | | S2 | Structure | Error | Empty config | | S3 | Structure | Error | Invalid JSON syntax | | S4 | Structure | Warning | Unknown top-level keys | | S5 | Structure | Warning | Missing jsc key (most configs need it) | | J1 | JSC Config | Error | Invalid parser syntax (must be ecmascript or typescript) | | J2 | JSC Config | Warning | JSX enabled in parser without React transform | | J3 | JSC Config | Warning | Deprecated loose mode in jsc.transform | | J4 | JSC Config | Warning | Missing target (no compilation target specified) | | J5 | JSC Config | Error | Invalid target value (not es3/es5/es2015-es2024/esnext) | | M1 | Modules | Error | Unknown module type | | M2 | Modules | Warning | isModule: false with ESM module type | | M3 | Modules | Warning | CommonJS module with ESM-only parser features | | T1 | Transform | Error | React transform without parser.jsx enabled | | T2 | Transform | Warning | Legacy decorators without decoratorsBeforeExport | | T3 | Transform | Warning | Conflicting useDefineForClassFields with TypeScript | | T4 | Transform | Warning | Deprecated constModules in jsc.experimental | | N1 | Minification | Warning | Minification enabled with compress: false | | N2 | Minification | Warning | Mangle enabled without compress | | N3 | Minification | Warning | Drop console in development config | | B1 | Best Practices | Warning | sourceMaps not configured | | B2 | Best Practices | Info | No env config for different environments |
Output Formats
text (default): Human-readable with severity iconsjson: Machine-parseable JSON array of findingssummary: Pass/fail with error/warning countsExit Codes
0: No errors (warnings/info only or clean)1: One or more errors found2: File not found or invalid inputRequirements
Supported Targets
es3, es5, es2015 through es2024, esnext
Supported Module Types
es6, commonjs, umd, amd, nodenext, systemjs
Valid Top-Level Keys
$schema, jsc, module, minify, env, isModule, sourceMaps, inlineSourcesContent, emitSourceMapColumns, inputSourceMap, test, exclude, filename