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.

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).
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.
npm install eslint-config-seek
yarn add eslint-config-seek
pnpm add eslint-config-seek

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',
    },
  },
];