{"id":40970,"library":"eslint-config-drupal-bundle","title":"eslint-config-drupal-bundle","description":"An ESLint shareable config that bundles Drupal coding standards, Airbnb style, and Prettier formatting into a single package, avoiding peer dependency conflicts. Current stable version is 2.0.7. It is designed for global installation, so you can lint any project without per-project ESLint setup. However, note that as of ESLint 6+, globally installed plugins and configs no longer work due to package loading changes; per-project setup is required for ESLint 6+. This package was primarily used with Drupal 8/9 and Node.js < 12. It is now largely considered outdated; recommended alternative is to use Drupal's official ESLint config or run ESLint per project with yarn/npm.","status":"deprecated","version":"2.0.7","language":"javascript","source_language":"en","source_url":"https://github.com/shaundrong/eslint-config-drupal-bundle","tags":["javascript","eslint","eslintconfig","config","airbnb","prettier","drupal","styleguide"],"install":[{"cmd":"npm install eslint-config-drupal-bundle","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-drupal-bundle","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-drupal-bundle","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Use 'drupal-bundle' (the package's prefix) not the full package name.","wrong":"module.exports = { extends: ['eslint-config-drupal-bundle'] };","symbol":"default config via extends","correct":"module.exports = { extends: ['drupal-bundle'] };"},{"note":"For local install, use the nested node_modules/.bin/eslint path.","wrong":"global eslint command after global install","symbol":"ESLint binary","correct":"./node_modules/eslint-config-drupal-bundle/node_modules/.bin/eslint"},{"note":"Global install still requires .eslintrc with 'drupal-bundle' extends.","wrong":"module.exports = { extends: ['eslint-config-drupal-bundle'] };","symbol":".eslintrc.js (global install)","correct":"module.exports = { extends: ['drupal-bundle'] };"}],"quickstart":{"code":"npm install -g eslint-config-drupal-bundle@2.0.7\necho 'module.exports = { extends: [\"drupal-bundle\"] };' > .eslintrc.js\neslint .","lang":"javascript","description":"Global install and run ESLint with Drupal config on current directory."},"warnings":[{"fix":"Install ESLint per project and use local node_modules path, or use Drupal's official ESLint config.","message":"ESLint 6+ breaks global plugin loading. This package relies on global installation which no longer works with ESLint >=6.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use @drupal/eslint-config or configure ESLint manually with Drupal rules.","message":"Package is no longer maintained. Drupal has moved to its own ESLint config in core.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Set eslintPath to 'eslint-config-drupal-bundle/node_modules/eslint'.","message":"When using with eslint-loader, you must specify the exact path to ESLint binary inside this package's node_modules.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"In workspace settings: { \"eslint.nodePath\": \"/path/to/eslint-config-drupal-bundle/node_modules/eslint\" }","message":"VSCode ESLint extension requires setting eslint.nodePath to this package's node_modules path.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Consider using @drupal/eslint-config or eslint-config-airbnb separately.","message":"Airbnb base config included but no longer maintained; may bring outdated rules.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'12':90 '2.0.7':32 '6':57,79 '8/9':87 'airbnb':15,118 'altern':98 'avoid':24 'bundl':5,11 'chang':70 'code':13 'config':3,9,62,106,117 'conflict':27 'consid':95 'current':28 'depend':26 'design':35 'drupal':4,12,86,102,120 'due':66 'eslint':2,7,49,56,78,105,109,115 'eslint-config-drupal-bundl':1 'eslintconfig':116 'format':19 'global':37,58 'howev':51 'instal':38,59 'javascript':114 'larg':94 'lint':42 'load':69 'longer':64 'node.js':89 'note':52 'offici':104 'outdat':96 'packag':23,68,81 'peer':25 'per':47,72,110 'per-project':46,71 'plugin':60 'prettier':18,119 'primarili':83 'project':44,48,73,111 'recommend':97 'requir':76 'run':108 'setup':50,74 'shareabl':8 'singl':22 'stabl':29 'standard':14 'style':16 'styleguid':121 'use':84,101 'version':30 'without':45 'work':65 'yarn/npm':113","created_at":"2026-06-04T18:50:08.508503+00:00","updated_at":"2026-06-04T18:50:08.508503+00:00","problems":[{"fix":"Install the package globally or locally, and ensure .eslintrc extends 'drupal-bundle'.","cause":"The config is not installed or not accessible from the current working directory (e.g., when running ESLint globally).","error":"ESLint couldn't find the config \"drupal-bundle\"."},{"fix":"Either install locally (npm install --save-dev eslint-config-drupal-bundle) or adjust ESLint's resolve path.","cause":"ESLint expects configs to be installed in node_modules relative to the project, but this package is installed globally.","error":"Cannot find module 'eslint-config-drupal-bundle'"},{"fix":"Ensure all peer dependencies are available; use npm@5-6 or yarn with 'install-peers' flag.","cause":"The package bundles Airbnb config which requires eslint-plugin-react, but it's not installed.","error":"ESLint: Failed to load plugin 'react' declared in 'drupal-bundle'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/shaundrong/eslint-config-drupal-bundle#readme","github":"https://github.com/shaundrong/eslint-config-drupal-bundle","docs":null,"changelog":null,"pypi":null,"npm":"eslint-config-drupal-bundle","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-04","next_check":"2026-09-02","install_tag":null}}