{"id":19584,"library":"eslint-config-shakacode","title":"Shakacode ESLint Config","description":"An ESLint shareable config used by ShakaCode for JavaScript and React projects. Current stable version 19.0.0 requires ESLint ^7.32.0 || ^8.2.0, eslint-plugin-import ^2.25.4, eslint-plugin-jsx-a11y ^6.5.1, and eslint-plugin-react ^7.28.0. Its version number aligns with eslint-config-airbnb. Differentiators: offers separate base config for non-React projects, follows Airbnb style guide with ShakaCode customizations, and has a history of breaking changes tied to major version bumps of dependencies.","status":"active","version":"19.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/shakacode/style-guide-javascript","tags":["javascript"],"install":[{"cmd":"npm install eslint-config-shakacode","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-shakacode","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-shakacode","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency - core linting engine","package":"eslint","optional":false},{"reason":"peer dependency - import rules","package":"eslint-plugin-import","optional":false},{"reason":"peer dependency - accessibility rules","package":"eslint-plugin-jsx-a11y","optional":false},{"reason":"peer dependency - React rules","package":"eslint-plugin-react","optional":true}],"imports":[{"note":"Use the full package name in ESLint extends. For React projects, this is the default config.","wrong":"extends: shakacode","symbol":"eslint-config-shakacode","correct":"extends: eslint-config-shakacode"},{"note":"Use this for non-React projects. The /base entry point excludes React rules.","wrong":"extends: eslint-config-shakacode/non-react","symbol":"eslint-config-shakacode/base","correct":"extends: eslint-config-shakacode/base"},{"note":"There is no separate 'react' extension. Use the main config for React projects.","wrong":"extends: eslint-config-shakacode/react","symbol":"eslint-config-shakacode/react","correct":"extends: eslint-config-shakacode"}],"quickstart":{"code":"// .eslintrc.yml\n---\nextends: eslint-config-shakacode\n\n// For non-React projects:\n// extends: eslint-config-shakacode/base\n\n// Install peer dependencies:\n// npm install --save-dev eslint eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react\n","lang":"yaml","description":"Shows how to configure ESLint to extend Shakacode config in .eslintrc.yml, including peer dep install."},"warnings":[{"fix":"Update to latest config and adjust code for new Airbnb rules.","message":"Version 5.0.0 breaks: eslint-config-airbnb updated to 9.x.x and eslint-plugin-react to 5.x.x.","severity":"breaking","affected_versions":"5.0.0"},{"fix":"Update babel-eslint to 6.x.x and ensure compatibility.","message":"Version 4.0.0 breaks: babel-eslint updated to 6.x.x.","severity":"breaking","affected_versions":"4.0.0"},{"fix":"Update dependencies and adjust code for new rules.","message":"Version 3.0.0 breaks: eslint-config-airbnb updated to 6.x.x and babel-eslint to 5.x.x. New rules: no-return-assign: [2, 'always'] and no-param-reassign: [2, { 'props': false }].","severity":"breaking","affected_versions":"3.0.0"},{"fix":"Ensure these packages are installed as regular dependencies.","message":"Version 2.0.0 breaks: babel-eslint and eslint-config-airbnb moved from devDependencies to dependencies.","severity":"breaking","affected_versions":"2.0.0"},{"fix":"Check that eslint-config-airbnb version aligns with this config.","message":"The config version number matches eslint-config-airbnb, not ESLint itself.","severity":"gotcha","affected_versions":"all"},{"fix":"Run eslint --fix and migrate rule configs as needed.","message":"Some rules from earlier versions may be deprecated in newer ESLint.","severity":"deprecated","affected_versions":">=19.0.0"}],"env_vars":null,"search_vec":"'19.0.0':19 '2.25.4':28 '6.5.1':34 '7.28.0':40 '7.32.0':22 '8.2.0':23 'a11y':33 'airbnb':49,61 'align':44 'base':53 'break':72 'bump':78 'chang':73 'config':3,7,48,54 'current':16 'custom':66 'depend':80 'differenti':50 'eslint':2,5,21,25,30,37,47 'eslint-config-airbnb':46 'eslint-plugin-import':24 'eslint-plugin-jsx-a11y':29 'eslint-plugin-react':36 'follow':60 'guid':63 'histori':70 'import':27 'javascript':12,81 'jsx':32 'major':76 'non':57 'non-react':56 'number':43 'offer':51 'plugin':26,31,38 'project':15,59 'react':14,39,58 'requir':20 'separ':52 'shakacod':1,10,65 'shareabl':6 'stabl':17 'style':62 'tie':74 'use':8 'version':18,42,77","created_at":"2026-04-25T11:18:34.348794+00:00","updated_at":"2026-04-25T11:18:34.348794+00:00","problems":[{"fix":"npm install --save-dev eslint-config-shakacode eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react","cause":"Package not installed or missing peer dependencies.","error":"Error: Cannot find module 'eslint-config-shakacode'"},{"fix":"Use 'eslint-config-shakacode/base' for base config, 'eslint-config-shakacode' for React.","cause":"Typo or wrong extension name.","error":"ESLint couldn't find the config 'eslint-config-shakacode/base'"},{"fix":"Update eslint-plugin-react to match config's peer requirement.","cause":"Outdated rule config incompatible with installed eslint-plugin-react version.","error":"Configuration for rule 'react/jsx-indent' is invalid"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":"https://shakacode.com","github":"https://github.com/shakacode/style-guide-javascript","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-config-shakacode","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}