packages/eslint-config/README.md
A comprehensive ESLint configuration package for the Cypress monorepo, providing standardized linting rules across JavaScript, TypeScript, React, Vue, and Cypress test files.
This package provides a unified ESLint configuration that combines multiple popular ESLint plugins and configurations to ensure consistent code quality across the entire Cypress codebase.
.js, .ts, .jsx, .tsx.vue files.cy.js, .cy.ts.graphql filesvite.config.mjs, webpack.config.*@eslint/js recommended rulestypescript-eslint recommended rules with project serviceeslint-plugin-cypress recommended ruleseslint-plugin-mocha recommended rules for testingeslint-plugin-vue recommended ruleseslint-plugin-react recommended rules (React 18+)@stylistic/eslint-plugin with custom formatting ruleseslint-plugin-import-x for import/export validation@graphql-eslint/eslint-plugin for GraphQL filesno-console is an errorMany rules are currently disabled during ESLint development but should eventually be enabled:
@typescript-eslint/*)This package is private and intended for internal use within the Cypress monorepo.
// eslint.config.ts
import baseConfig from '@packages/eslint-config'
export default baseConfig
// eslint.config.ts
import baseConfig from '@packages/eslint-config'
export default [
...baseConfig,
{
// Your custom overrides here
rules: {
'no-console': 'warn', // Override to warn instead of error
},
},
]
Files with extensions .cy.{js,ts}, .{j,t}sx, and .vue automatically get browser globals.
Configuration files like vite.config.mjs and webpack.config.* get Node.js globals.
The base configuration includes shared Node.js and browser globals, plus ES2020 features.
The configuration automatically ignores:
.releaserc.jsdist/**/***/__snapshots__/**/*test/.mocharc.jsnpm run lint: Lint the package itselfThis package includes all necessary ESLint plugins and parsers as devDependencies, ensuring consistent versions across the monorepo.