{"id":25485,"library":"eslint-config-metalab","title":"eslint-config-metalab","description":"ESLint shareable config for MetaLab's JavaScript style guidelines, version 10.1.0. It extends rules inspired by Airbnb with additional opinionated choices, covering ES5 (legacy), ES6 (base), and React. The config namespaces all plugin rules under `metalab/` to avoid peer dependency conflicts and multiple plugin installs. Release cadence is sporadic; major versions may introduce breaking rule changes.","status":"maintenance","version":"10.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/izaakschroeder/eslint-config-metalab","tags":["javascript","eslint","eslint-config"],"install":[{"cmd":"npm install eslint-config-metalab","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-metalab","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-metalab","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for linting. Must be installed alongside the config.","package":"eslint","optional":false}],"imports":[{"note":"ESLint resolves shareable configs prefixed with eslint-config- automatically. Use just 'metalab' in .eslintrc.","wrong":"extends: ['eslint-config-metalab']","symbol":"metalab","correct":"extends: ['metalab']"}],"quickstart":{"code":"# Install dependencies\nnpm install --save-dev eslint eslint-config-metalab\n\n# Create .eslintrc.json\ncat > .eslintrc.json << EOF\n{\n  \"extends\": [\n    \"metalab\",\n    \"metalab/base\",\n    \"metalab/react\"\n  ]\n}\nEOF\n\n# Alternatively, copy .gitignore to .eslintignore\ncp .gitignore .eslintignore\n\n# Lint all JS files\neslint .\n\n# Or add to package.json scripts:\n# \"lint\": \"eslint .\"","lang":"javascript","description":"Install eslint and eslint-config-metalab, then configure .eslintrc with the 'metalab' preset and optional sub-presets (base, react). Copy .gitignore to .eslintignore and run eslint."},"warnings":[{"fix":"Use 'metalab/rule-name' instead of 'plugin/rule-name' to disable rules.","message":"Rules from plugins are namespaced under 'metalab/', so to disable a rule you must use the prefixed name, e.g., 'metalab/import/no-commonjs': 0.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Update your .eslintrc to use 'metalab/base' for modern code or 'metalab/legacy' for ES5.","message":"Version 2.x changed extending from 'metalab' to 'metalab/base' for ES6 code. Old 'metalab' preset now targets legacy ES5.","severity":"breaking","affected_versions":">=2.0.0 <3.0.0"},{"fix":"Update Node.js to >=6 and ESLint to ^4.","message":"Version 5.0.0 dropped support for Node.js <6 and upgraded ESLint peer dependency to ^4.0.0.","severity":"breaking","affected_versions":">=5.0.0 <6.0.0"},{"fix":"Use 'metalab/base' for modern ES6+ code and consider a custom config for legacy ES5.","message":"The 'metalab/legacy' preset is deprecated in favor of 'metalab/base' with a separate config for legacy code.","severity":"deprecated","affected_versions":">=8.0.0"},{"fix":"Check the package's dependencies in node_modules/eslint-config-metalab/package.json for required plugins and install them.","message":"This package does not auto-install its ESLint plugins; you must manually install any plugins that rules depend on (e.g., eslint-plugin-import, eslint-plugin-react).","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Ensure eslint-config-metalab is installed: npm install --save-dev eslint-config-metalab.","cause":"Using 'extends: metalab' without installing eslint-config-metalab, or confusion with plugin namespacing.","error":"Error: Failed to load plugin 'metalab': Cannot find module 'eslint-plugin-metalab'"},{"fix":"Set 'extends': ['metalab'] in .eslintrc.json.","cause":"Missing or incorrect .eslintrc.json; 'extends' value should be just 'metalab', not 'eslint-config-metalab'.","error":"ESLint couldn't determine the config for 'metalab'. Check your configuration file."},{"fix":"Use 'metalab/import/no-commonjs' as the rule key when disabling.","cause":"The rule name uses the namespaced prefix 'metalab/', but the actual rule is from eslint-plugin-import.","error":"Error: Cannot read property 'rules' of undefined for the 'metalab/import/no-commonjs' rule."},{"fix":"Run: npm install --save-dev eslint@^5.2.0","cause":"ESLint not installed or version mismatch.","error":"Peer dependency warning: eslint@>=5.2.0 is required but not installed."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}