Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
default (main entry)
✓ import eslintConfigSeek from 'eslint-config-seek';
✗ const eslintConfigSeek = require('eslint-config-seek');
ESM-only since v15. Use ESM in eslint.config.js or use dynamic import in CJS.
base
✓ import base from 'eslint-config-seek/base';
✗ import base from 'eslint-config-seek/base.js';
v15 changed the entrypoint from 'eslint-config-seek/base.js' to 'eslint-config-seek/base'. The .js extension is now incorrect.
vitest
✓ import vitest from 'eslint-config-seek/vitest';
✗ import vitest from 'eslint-config-seek/vitest.js';
Same as base: drop the .js extension for v15+. Also available as 'eslint-config-seek/vitest/base'.
require (CJS)
✓ const eslintConfigSeek = await import('eslint-config-seek');
✗ const eslintConfigSeek = require('eslint-config-seek');
Since v15 the package is ESM-only; require() throws. Use dynamic import in CJS contexts.
TypeScript types
✓ import type { ESLintConfigSeek } from 'eslint-config-seek';
✗ import { ESLintConfigSeek } from 'eslint-config-seek';
If you need the type, use type import to avoid runtime import that may fail in CJS.
Shows how to use the default (React + Jest) config in an ESM eslint.config.js file.
// eslint.config.js
import eslintConfigSeek from 'eslint-config-seek';
export default [
...eslintConfigSeek,
// Add your overrides here
{
rules: {
'no-console': 'warn',
},
},
];
Debug
Known issues
breakingv15 changed entrypoints: 'eslint-config-seek/base.js' and 'eslint-config-seek/extensions.js' are no longer valid. Use 'eslint-config-seek/base' and omit the .js extension.fixUpdate imports to drop the .js extension (e.g., 'eslint-config-seek/base' instead of 'eslint-config-seek/base.js').
affects: >=15.0.0
breakingv15 requires ESLint >=9.22.0 and TypeScript >=5.5.4. Older major versions may not be compatible.fixUpdate ESLint and TypeScript to meet the new peer dependency ranges.
affects: >=15.0.0
breakingv15 marked the package as ESM-only. require() will throw ERR_REQUIRE_ESM.fixUse dynamic import (await import(...)) in CommonJS modules, or switch to ESM.
affects: >=15.0.0
gotchaThe config may be incompatible with other ESLint plugins if they require a specific rule configuration. Custom rules relying on plugins may not work if plugins are not installed.fixUpdate to v15.0.1+ if you use custom rules that extend plugin rules.
affects: >=15.0.1 fixed a bug where custom rules relying on plugins were not properly forwarded.
gotchaUsing 'eslint-config-seek/vitest' requires Vitest to be installed. The config does not check for Vitest's presence.fixEnsure vitest is installed as a dev dependency if using the vitest entrypoints.
affects: all
deprecatedThe 'eslint-config-seek/extensions' entrypoint was removed in v15.fixUse 'eslint-config-seek/base' instead.
affects: >=15.0.0
Errors
Common errors & fixes
Error: Cannot find module 'eslint-config-seek/base.js'
Importing with .js extension which is not an export entry in v15.
fixChange import to 'eslint-config-seek/base' (without .js).
Error [ERR_REQUIRE_ESM]: require() of ES Module .../eslint-config-seek/index.js from .../eslint.config.js not supported.
The package is ESM-only since v15. Using require() in a CJS file throws this error.
fixUse dynamic import: const config = await import('eslint-config-seek'); Parsing error: The keyword 'export' is reserved
ESLint config file is parsed as CommonJS but uses ESM syntax (export default).
fixEnsure eslint.config.js has type: 'module' in package.json or rename to .mjs.
Plugin "import-zod" was not found. ESLint couldn't find the plugin "import-zod".
The config uses eslint-plugin-import-zod which must be installed as a peer dependency.
fixRun npm install --save-dev eslint-plugin-import-zod.
Configuration for rule "@typescript-eslint/naming-convention" is invalid
Overriding the naming-convention rule may conflict with the preconfigured options.
fixCheck the rule configuration object; ensure you are using the correct schema (e.g., an array of objects).
Audit
Dependencies
eslintrequiredpeer dependency — requires ESLint >=9.22.0
typescriptrequiredpeer dependency — requires TypeScript >=5.5.4