eslint-config-farther
raw JSON → 1.0.5 verified Sat Apr 25 auth: no javascript
A strict ESLint configuration for TypeScript and React projects, v1.0.5, released sporadically. It bundles a curated set of plugins (functional, unicorn, etc., security-focused no-type-assertion, accessibility jsx-a11y) and enforces consistent formatting via Prettier. Differentiates with opinionated rules on type assertions, functional programming patterns, and export sorting. Requires exact peer dependency versions, which may conflict with other configs.
Common errors
error ESLint: Failed to load plugin 'etc' declared in 'eslint-config-farther': Peer dependency not found. ↓
cause Missing peer dependency eslint-plugin-etc at exact version 2.0.3.
fix
Run: npm install eslint-plugin-etc@2.0.3 --save-dev
error Error: Cannot find module 'eslint-config-farther' ↓
cause The package is not installed or not in node_modules.
fix
Run: npm install eslint-config-farther --save-dev
error TypeError: config is not iterable ↓
cause Using the exported config directly without spreading in a flat config array.
fix
Wrap the config in an array: export default [config];
Warnings
breaking ESLint v9 compatibility: This config is designed for ESLint 8.57.0 and may not work with ESLint v9 due to changes in flat config and rule APIs. ↓
fix Downgrade to ESLint 8.57.0 or wait for an update.
gotcha Strict peer dependency versions: All peer dependencies are pinned to exact versions, which may conflict with other tools or configs that require different versions. ↓
fix Use npm's --legacy-peer-deps flag or manually adjust peer dependency versions at your own risk.
gotcha Functional programming rules may be too opinionated for many codebases; they enforce immutability and expression-based code by default. ↓
fix Disable specific functional rules (e.g., 'functional/prefer-readonly-type': 'off') in your config overrides.
deprecated The no-type-assertion plugin is deprecated in favor of @typescript-eslint/no-unnecessary-type-assertion; the maintainer may drop it in future. ↓
fix Consider migrating to built-in TypeScript ESLint rules and removing the plugin.
gotcha Flat config only: This config exports a flat config array, not a legacy .eslintrc config object. Using it with .eslintrc.* files requires wrapping correctly. ↓
fix Use 'extends' in .eslintrc.json as shown in quickstart, or migrate to eslint.config.js.
Install
npm install eslint-config-farther yarn add eslint-config-farther pnpm add eslint-config-farther Imports
- flat/config
import config from 'eslint-config-farther' - .eslintrc.json wrong
{"extends": ["eslint-config-farther"]}correct{"extends": "farther"} - require('eslint-config-farther') wrong
module.exports = config;correctconst config = require('eslint-config-farther'); module.exports = [config];
Quickstart
// eslint.config.js
import config from 'eslint-config-farther';
export default [
...config,
{
rules: {
// Override or add custom rules
'no-console': 'warn',
},
},
];