eslint-config-neon
raw JSON → 0.4.0 verified Sat Apr 25 auth: no javascript
eslint-config-neon is an all-in-one ESLint shareable config for modern JavaScript and TypeScript projects. Version 0.4.0 requires Node ^20.19.0 || ^22.13.0 || >=24. It provides a curated set of rules covering code quality, style, and TypeScript best practices, aiming to reduce configuration overhead. Unlike many other configs (e.g., standard, airbnb), it is opinionated but minimal, and ships with TypeScript definitions. It does not include plugins as dependencies; users must install peer deps. Active development with frequent updates.
Common errors
error Error [ERR_REQUIRE_ESM]: require() of ES Module from not supported. ↓
cause Using require() on an ESM-only package.
fix
Use import() or dynamic import: const neon = await import('eslint-config-neon');
error Could not find 'eslint' as a plugin or config. ↓
cause Missing peer dependencies (e.g., eslint, @typescript-eslint/parser).
fix
Run npm install eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --save-dev
error Configuration for rule "@typescript-eslint/no-unused-vars" is invalid. ↓
cause Rules from peer plugins may have been removed or renamed.
fix
Check that peer deps match the expected versions for this config.
Warnings
breaking Version 0.3.0+ changed to ESM-only; CJS require() no longer works. ↓
fix Use import() or dynamic import in CommonJS.
breaking Requires Node 20.19.0+ as of v0.4.0; older Node versions will fail. ↓
fix Update Node to ^20.19.0 || ^22.13.0 || >=24.
gotcha This config expects peer dependencies like eslint, @typescript-eslint/parser, etc. Not auto-installing them may cause missing plugin errors. ↓
fix Install peer deps manually or use npm >=7 which auto-installs peers.
deprecated ESLint legacy config (.eslintrc) is not supported; only flat config (eslint.config.js) works. ↓
fix Migrate to flat config (https://eslint.org/docs/latest/use/configure/configuration-files).
gotcha Config overrides may not merge as expected due to flat config array order. ↓
fix Place custom config objects after the spread to override rules.
Install
npm install eslint-config-neon yarn add eslint-config-neon pnpm add eslint-config-neon Imports
- default wrong
const neon = require('eslint-config-neon')correctimport neon from 'eslint-config-neon' - neon wrong
const neon = require('eslint-config-neon')correctconst neon = await import('eslint-config-neon') - neon
const neon = await import('eslint-config-neon') - neon wrong
module.exports = require('eslint-config-neon')correct// eslint.config.js import neon from 'eslint-config-neon'; export default [ ...neon, ];
Quickstart
// eslint.config.js
import neon from 'eslint-config-neon';
export default [
...neon,
{
rules: {
'no-console': 'warn',
},
},
];