{"id":19577,"library":"eslint-config-seek","title":"eslint-config-seek","description":"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.","status":"active","version":"15.0.4","language":"javascript","source_language":"en","source_url":"https://github.com/seek-oss/eslint-config-seek","tags":["javascript","typescript"],"install":[{"cmd":"npm install eslint-config-seek","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-seek","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-seek","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency — requires ESLint >=9.22.0","package":"eslint","optional":false},{"reason":"peer dependency — requires TypeScript >=5.5.4","package":"typescript","optional":false}],"imports":[{"note":"ESM-only since v15. Use ESM in eslint.config.js or use dynamic import in CJS.","wrong":"const eslintConfigSeek = require('eslint-config-seek');","symbol":"default (main entry)","correct":"import eslintConfigSeek from 'eslint-config-seek';"},{"note":"v15 changed the entrypoint from 'eslint-config-seek/base.js' to 'eslint-config-seek/base'. The .js extension is now incorrect.","wrong":"import base from 'eslint-config-seek/base.js';","symbol":"base","correct":"import base from 'eslint-config-seek/base';"},{"note":"Same as base: drop the .js extension for v15+. Also available as 'eslint-config-seek/vitest/base'.","wrong":"import vitest from 'eslint-config-seek/vitest.js';","symbol":"vitest","correct":"import vitest from 'eslint-config-seek/vitest';"},{"note":"Since v15 the package is ESM-only; require() throws. Use dynamic import in CJS contexts.","wrong":"const eslintConfigSeek = require('eslint-config-seek');","symbol":"require (CJS)","correct":"const eslintConfigSeek = await import('eslint-config-seek');"},{"note":"If you need the type, use type import to avoid runtime import that may fail in CJS.","wrong":"import { ESLintConfigSeek } from 'eslint-config-seek';","symbol":"TypeScript types","correct":"import type { ESLintConfigSeek } from 'eslint-config-seek';"}],"quickstart":{"code":"// eslint.config.js\nimport eslintConfigSeek from 'eslint-config-seek';\n\nexport default [\n  ...eslintConfigSeek,\n  // Add your overrides here\n  {\n    rules: {\n      'no-console': 'warn',\n    },\n  },\n];","lang":"typescript","description":"Shows how to use the default (React + Jest) config in an ESM eslint.config.js file."},"warnings":[{"fix":"Update imports to drop the .js extension (e.g., 'eslint-config-seek/base' instead of 'eslint-config-seek/base.js').","message":"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.","severity":"breaking","affected_versions":">=15.0.0"},{"fix":"Update ESLint and TypeScript to meet the new peer dependency ranges.","message":"v15 requires ESLint >=9.22.0 and TypeScript >=5.5.4. Older major versions may not be compatible.","severity":"breaking","affected_versions":">=15.0.0"},{"fix":"Use dynamic import (await import(...)) in CommonJS modules, or switch to ESM.","message":"v15 marked the package as ESM-only. require() will throw ERR_REQUIRE_ESM.","severity":"breaking","affected_versions":">=15.0.0"},{"fix":"Update to v15.0.1+ if you use custom rules that extend plugin rules.","message":"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.","severity":"gotcha","affected_versions":">=15.0.1 fixed a bug where custom rules relying on plugins were not properly forwarded."},{"fix":"Ensure vitest is installed as a dev dependency if using the vitest entrypoints.","message":"Using 'eslint-config-seek/vitest' requires Vitest to be installed. The config does not check for Vitest's presence.","severity":"gotcha","affected_versions":"all"},{"fix":"Use 'eslint-config-seek/base' instead.","message":"The 'eslint-config-seek/extensions' entrypoint was removed in v15.","severity":"deprecated","affected_versions":">=15.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Change import to 'eslint-config-seek/base' (without .js).","cause":"Importing with .js extension which is not an export entry in v15.","error":"Error: Cannot find module 'eslint-config-seek/base.js'"},{"fix":"Use dynamic import: const config = await import('eslint-config-seek');","cause":"The package is ESM-only since v15. Using require() in a CJS file throws this error.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module .../eslint-config-seek/index.js from .../eslint.config.js not supported."},{"fix":"Ensure eslint.config.js has type: 'module' in package.json or rename to .mjs.","cause":"ESLint config file is parsed as CommonJS but uses ESM syntax (export default).","error":"Parsing error: The keyword 'export' is reserved"},{"fix":"Run npm install --save-dev eslint-plugin-import-zod.","cause":"The config uses eslint-plugin-import-zod which must be installed as a peer dependency.","error":"Plugin \"import-zod\" was not found. ESLint couldn't find the plugin \"import-zod\"."},{"fix":"Check the rule configuration object; ensure you are using the correct schema (e.g., an array of objects).","cause":"Overriding the naming-convention rule may conflict with the preconfigured options.","error":"Configuration for rule \"@typescript-eslint/naming-convention\" is invalid"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}