eslint-config-seek
raw JSON → 15.0.4 verified Sat Apr 25 auth: no javascript
A shareable ESLint configuration maintained by SEEK, providing pre-configured rules for React (with Jest or Vitest) and base (no React) projects. The library ships TypeScript type definitions for all entrypoints. Current stable version is 15.0.4 (March 2025), requires ESLint >=9.22.0 and TypeScript >=5.5.4. In v15, all entrypoints now have explicit exports in package.json, so imports must use the exact entrypoint names. This config is typically used with sku or skuba, but can be installed as a standalone dev dependency. Release cadence is approximately monthly.
Common errors
error Error: Cannot find module 'eslint-config-seek/base.js' ↓
cause Importing with .js extension which is not an export entry in v15.
fix
Change import to 'eslint-config-seek/base' (without .js).
error Error [ERR_REQUIRE_ESM]: require() of ES Module .../eslint-config-seek/index.js from .../eslint.config.js not supported. ↓
cause The package is ESM-only since v15. Using require() in a CJS file throws this error.
fix
Use dynamic import: const config = await import('eslint-config-seek');
error Parsing error: The keyword 'export' is reserved ↓
cause ESLint config file is parsed as CommonJS but uses ESM syntax (export default).
fix
Ensure eslint.config.js has type: 'module' in package.json or rename to .mjs.
error Plugin "import-zod" was not found. ESLint couldn't find the plugin "import-zod". ↓
cause The config uses eslint-plugin-import-zod which must be installed as a peer dependency.
fix
Run npm install --save-dev eslint-plugin-import-zod.
error Configuration for rule "@typescript-eslint/naming-convention" is invalid ↓
cause Overriding the naming-convention rule may conflict with the preconfigured options.
fix
Check the rule configuration object; ensure you are using the correct schema (e.g., an array of objects).
Warnings
breaking v15 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. ↓
fix Update imports to drop the .js extension (e.g., 'eslint-config-seek/base' instead of 'eslint-config-seek/base.js').
breaking v15 requires ESLint >=9.22.0 and TypeScript >=5.5.4. Older major versions may not be compatible. ↓
fix Update ESLint and TypeScript to meet the new peer dependency ranges.
breaking v15 marked the package as ESM-only. require() will throw ERR_REQUIRE_ESM. ↓
fix Use dynamic import (await import(...)) in CommonJS modules, or switch to ESM.
gotcha The 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. ↓
fix Update to v15.0.1+ if you use custom rules that extend plugin rules.
gotcha Using 'eslint-config-seek/vitest' requires Vitest to be installed. The config does not check for Vitest's presence. ↓
fix Ensure vitest is installed as a dev dependency if using the vitest entrypoints.
deprecated The 'eslint-config-seek/extensions' entrypoint was removed in v15. ↓
fix Use 'eslint-config-seek/base' instead.
Install
npm install eslint-config-seek yarn add eslint-config-seek pnpm add eslint-config-seek Imports
- default (main entry) wrong
const eslintConfigSeek = require('eslint-config-seek');correctimport eslintConfigSeek from 'eslint-config-seek'; - base wrong
import base from 'eslint-config-seek/base.js';correctimport base from 'eslint-config-seek/base'; - vitest wrong
import vitest from 'eslint-config-seek/vitest.js';correctimport vitest from 'eslint-config-seek/vitest'; - require (CJS) wrong
const eslintConfigSeek = require('eslint-config-seek');correctconst eslintConfigSeek = await import('eslint-config-seek'); - TypeScript types wrong
import { ESLintConfigSeek } from 'eslint-config-seek';correctimport type { ESLintConfigSeek } from 'eslint-config-seek';
Quickstart
// eslint.config.js
import eslintConfigSeek from 'eslint-config-seek';
export default [
...eslintConfigSeek,
// Add your overrides here
{
rules: {
'no-console': 'warn',
},
},
];