--- name: javascript-tooling description: Configure development tools, linting, formatting, and test runners for existing JavaScript projects. Use for ESLint, Prettier, Jest, or equivalent tool setup; defer application implementation and generic project scaffolding. metadata: triggers: files: - '.eslintrc.*' - 'jest.config.*' - 'package.json' keywords: - eslint - prettier - jest - test - lint - build --- # JavaScript Tooling ## **Priority: P1 (HIGH)** ## Implementation Guidelines Start tooling recommendations with the applicable **Priority** and then state the formatting tool and enforcement point. - **Linting**: ESLint (Rec + Prettier). Fix on save. - **Formatting**: Prettier. Run on save/commit. - **Testing**: Jest/Vitest. Co-locate tests. >80% cov. - **Build**: Vite (Apps), Rollup (Libs). - **Pkg Manager**: Sync versions (`npm`/`yarn`/`pnpm`). ## Anti-Patterns - **No Formatting Wars**: Prettier rules. - **No Untested Code**: TDD/Post-code tests. - **No Dirty Commits**: Lint before push. ## Configuration ```javascript // .eslintrc.js module.exports = { extends: ['eslint:recommended', 'prettier'], rules: { 'no-console': 'warn', 'prefer-const': 'error' }, }; ``` ```json // .prettierrc { "semi": true, "singleQuote": true, "printWidth": 80 } ``` ```javascript // jest.config.js export default { coverageThreshold: { global: { lines: 80 } }, }; ``` ## Reference & Examples For testing patterns and CI/CD: See [references/REFERENCE.md](references/REFERENCE.md). ## Related Topics best-practices | language ## Canonical response anchors When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant: - Pkg Manager - Priority - Testing