{"id":19527,"library":"eslint-config-hardcore","title":"eslint-config-hardcore","description":"The most strict (yet practical) ESLint config, bundling 51 plugins and 1376 rules for maximum code consistency and robustness. Current stable version is 49.0.0, released with a cadence of major updates every few months. It supports ESLint v8 (legacy config format) and TypeScript >=4.7.4. Key differentiators: it is the most comprehensive ESLint config available, covering React, Vue, Node, Jest, FP, performance, and more through modular sub-configs. Notably, v49 is likely the last major release supporting ESLint v8 and legacy config; future versions will target ESLint v9 and flat config, and may drop plain JavaScript support entirely.","status":"active","version":"49.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/EvgenyOrekhov/eslint-config-hardcore","tags":["javascript","eslint","config","eslintconfig","eslint-config","hardcore"],"install":[{"cmd":"npm install eslint-config-hardcore","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-hardcore","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-hardcore","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: requires ^8.57.0 (legacy config); future versions may require v9","package":"eslint","optional":false},{"reason":"peer dependency: requires >=4.7.4 for TypeScript configs","package":"typescript","optional":true}],"imports":[{"note":"Used via ESLint's extends mechanism; not a programmatic import.","wrong":"importing the package directly in code (e.g., const config = require('eslint-config-hardcore'))","symbol":"hardcore (config)","correct":"extends: ['hardcore'] in .eslintrc.json"},{"note":"Additional TypeScript rules; requires parserOptions.project to be set.","wrong":"using hardcore/ts without also extending hardcore first","symbol":"hardcore/ts","correct":"extends: ['hardcore', 'hardcore/ts'] in .eslintrc.json"},{"note":"Assumes React is installed; includes react-specific rules.","wrong":"extending hardcore/react without a React environment configured","symbol":"hardcore/react","correct":"extends: ['hardcore', 'hardcore/react'] in .eslintrc.json"}],"quickstart":{"code":"// 1. Install\nnpm install eslint-config-hardcore --save-dev\n\n// 2. Create .eslintrc.json\n{\n  \"root\": true,\n  \"extends\": [\"hardcore\", \"hardcore/ts\"],\n  \"parserOptions\": {\n    \"project\": true\n  },\n  \"env\": {\n    \"browser\": true\n  }\n}\n\n// 3. Run ESLint\nnpx eslint .","lang":"json","description":"Sets up the base hardcore config with TypeScript support for a browser project. Requires ESLint v8 and TypeScript >=4.7.4."},"warnings":[{"fix":"Review new rules; adjust code for tomdoc style in JSDoc comments if needed.","message":"v49.0.0: Updated typescript-eslint to v7, added perfectionist rules, and changed import/docstyle to tomdoc (affects import/no-deprecated).","severity":"breaking","affected_versions":">=49.0.0"},{"fix":"Prepare migration to ESLint v9 and flat config when upgrading beyond v49.","message":"v49.0.0 is the last major release supporting ESLint v8 and legacy config. Next major will require ESLint v9 and flat config.","severity":"breaking","affected_versions":">49.0.0"},{"fix":"Migrate to TypeScript or consider alternative configs if maintaining JS-only projects.","message":"Future major release will likely support only TypeScript projects; plain JavaScript support may be dropped.","severity":"deprecated","affected_versions":">49.0.0"},{"fix":"Use eslint's --quiet flag or disable specific rules in your overrides to onboard gradually.","message":"The config is extremely strict (1376+ rules). Expect many lint errors on existing codebases; incremental adoption recommended.","severity":"gotcha","affected_versions":"*"},{"fix":"Add 'parserOptions': { 'project': true } to your ESLint config.","message":"The 'hardcore/ts' config requires parserOptions.project to be set (commonly 'true' or a tsconfig path). Missing this causes parse errors.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install eslint-config-hardcore --save-dev' which installs all peer dependencies automatically, or manually install missing plugins.","cause":"eslint-config-hardcore has many plugin dependencies that must be installed alongside it.","error":"Error: Failed to load plugin 'import' declared in 'hardcore': Cannot find module 'eslint-plugin-import'"},{"fix":"Add 'parser': '@typescript-eslint/parser' (or rely on hardcore/ts to set it) and 'parserOptions.project'.","cause":"TypeScript parser not configured when using hardcore/ts config.","error":"Parsing error: The keyword 'import' is reserved"},{"fix":"Ensure only one version of eslint-plugin-unicorn is installed: 'npm dedupe' or check package-lock.","cause":"Multiple versions of eslint-plugin-unicorn installed or conflicting plugin aliases.","error":"ESLint couldn't determine the plugin 'unicorn' uniquely."},{"fix":"Either override the rule in your config: 'rules': { 'import/order': 'off' } or adjust your code to match the expected order.","cause":"The hardcore config sets very strict import ordering rules that may conflict with existing .eslintrc settings.","error":"Configuration for rule 'import/order' is invalid"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}