{"id":19595,"library":"eslint-config-tc","title":"eslint-config-tc","description":"An ESLint shareable flat config for JavaScript projects, providing a comprehensive set of linting rules including style, import, Jest, and unicorn plugins. Current stable version is 28.0.3, requiring Node >=22, ESLint 10, and flat config. Key differentiators: integrates Prettier formatting, updates peer deps frequently, and drops legacy eslintrc support. Released irregularly with breaking changes on major bumps; v28 drops Node 20 and switches to flat config only.","status":"active","version":"28.0.3","language":"javascript","source_language":"en","source_url":"https://github.com/tclindner/eslint-config-tc","tags":["javascript","eslintconfig","code","quality","style","lint","linter","eslint","code style"],"install":[{"cmd":"npm install eslint-config-tc","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-tc","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-tc","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for ESLint JS rules","package":"@eslint/js","optional":false},{"reason":"peer dependency (>=10)","package":"eslint","optional":false},{"reason":"peer dependency for import rules","package":"eslint-plugin-import-x","optional":false},{"reason":"peer dependency for Jest rules","package":"eslint-plugin-jest","optional":false},{"reason":"peer dependency for Prettier integration","package":"eslint-plugin-prettier","optional":false},{"reason":"peer dependency for unicorn rules","package":"eslint-plugin-unicorn","optional":false},{"reason":"peer dependency for global variable definitions","package":"globals","optional":false},{"reason":"peer dependency for formatting","package":"prettier","optional":false}],"imports":[{"note":"Package is ESM-only since v28; CommonJS require() throws ERR_REQUIRE_ESM.","wrong":"const tcConfig = require('eslint-config-tc');","symbol":"default (config array)","correct":"import tcConfig from 'eslint-config-tc';"},{"note":"No separate TS config; flat config works with @typescript-eslint/parser if added manually.","wrong":"import { default } from 'eslint-config-tc';","symbol":"TypeScript config (if any)","correct":"import tcConfig from 'eslint-config-tc'; // same as JS"},{"note":"Package does not export a CommonJS module; use ESM import.","wrong":"module.exports = require('eslint-config-tc');","symbol":"module.exports (deprecated)","correct":"// Not applicable; use flat config spread"}],"quickstart":{"code":"// eslint.config.mjs\nimport tcConfig from 'eslint-config-tc';\n\nexport default [\n  ...tcConfig,\n  {\n    rules: {\n      'no-console': 'warn',\n    },\n  },\n];","lang":"javascript","description":"Basic setup for ESLint flat config using eslint-config-tc with a rule override."},"warnings":[{"fix":"Upgrade to Node >=22 and use eslint.config.mjs flat config.","message":"v28.0.0 drops support for Node 20 and ESLint 10 flat config only, removing .eslintrc compatibility.","severity":"breaking","affected_versions":">=28.0.0"},{"fix":"Use Node >=20.","message":"v27.0.0 drops Node 18.","severity":"breaking","affected_versions":">=27.0.0"},{"fix":"Update eslint-plugin-jest to ^28.0.0; remove jest/no-if from overrides.","message":"v26.0.0 requires eslint-plugin-jest >=28.0.0 and removes jest/no-if rule.","severity":"breaking","affected_versions":">=26.0.0"},{"fix":"Update compatibility: eslint-plugin-prettier >=5, prettier >=3.","message":"v24.0.0 requires eslint-plugin-prettier ^5.0.0 and prettier ^3.0.0; older versions are deprecated.","severity":"deprecated","affected_versions":">=24.0.0"},{"fix":"Run npx install-peerdeps --dev eslint-config-tc to install all peers.","message":"Peer dependencies must be installed manually; using npx install-peerdeps --dev eslint-config-tc is recommended.","severity":"gotcha","affected_versions":">=28.0.0"},{"fix":"Use import syntax or dynamic import().","message":"Package is ESM-only since v28; require() throws ERR_REQUIRE_ESM.","severity":"gotcha","affected_versions":">=28.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use import syntax in an ESM context: import tcConfig from 'eslint-config-tc';","cause":"Using CommonJS require() to load an ESM-only package.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/eslint-config-tc/index.mjs not supported."},{"fix":"Install peer dependencies via npx install-peerdeps --dev eslint-config-tc, and use eslint.config.mjs flat config.","cause":"Missing or incorrectly installed package; or using outdated eslintrc format.","error":"ESLint couldn't find the config \"eslint-config-tc\"."},{"fix":"npm install --save-dev @eslint/js","cause":"Missing peer dependency @eslint/js.","error":"Cannot find module '@eslint/js'"},{"fix":"Remove jest/no-if from your overrides.","cause":"v26.0.0 removed jest/no-if rule; referencing it in overrides causes error.","error":"Configuration for rule \"jest/no-if\" is invalid: Value 'error' is not accepted."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}