{"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,"search_vec":"'10':36 '20':65 '22':34 '28.0.3':31 'break':57 'bump':61 'chang':58 'code':74,80 'comprehens':15 'config':3,9,39,70 'current':27 'dep':47 'differenti':41 'drop':50,63 'eslint':2,6,35,79 'eslint-config-tc':1 'eslintconfig':73 'eslintrc':52 'flat':8,38,69 'format':44 'frequent':48 'import':22 'includ':20 'integr':42 'irregular':55 'javascript':11,72 'jest':23 'key':40 'legaci':51 'lint':18,77 'linter':78 'major':60 'node':33,64 'peer':46 'plugin':26 'prettier':43 'project':12 'provid':13 'qualiti':75 'releas':54 'requir':32 'rule':19 'set':16 'shareabl':7 'stabl':28 'style':21,76,81 'support':53 'switch':67 'tc':4 'unicorn':25 'updat':45 'v28':62 'version':29","created_at":"2026-04-25T11:18:37.392781+00:00","updated_at":"2026-04-25T11:18:37.392781+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/tclindner/eslint-config-tc","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-config-tc","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}