Versions

ESLint couldn't find the plugin …

Symptoms

When using the legacy ESLint config system, you may see this error running ESLint after installing dependencies:

ESLint couldn't find the plugin "${pluginName}".

(The package "${pluginName}" was not found when loaded as a Node module from the directory "${resolvePluginsRelativeTo}".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

    npm install ${pluginName}@latest --save-dev

The plugin "${pluginName}" was referenced from the config file in "${importerName}".

Cause

Legacy ESLint configuration files specify shareable configs by their package name. That package name is passed to the Node.js require(), which looks up the package under local node_modules/ directories. For example, the following ESLint config will first try to load a module located at node_modules/eslint-plugin-yours:

module.exports = {
    extends: ["plugin:eslint-plugin-yours/config-name"],
};

If the package is not found in any searched node_modules/, ESLint will print the aforementioned error.

Common reasons for this occurring include:

  • Not running npm install or the equivalent package manager command
  • Mistyping the case-sensitive name of the plugin

Plugin Name Variations

Note that the eslint-plugin- plugin name prefix may be omitted for brevity, e.g. extends: ["yours"].

@ npm scoped packages put the eslint-plugin- prefix after the org scope, e.g. extends: ["@org/yours"] to load from @org/eslint-plugin-yours.

Resolution

Common resolutions for this issue include:

  • Upgrading all versions of all packages to their latest version
  • Adding the plugin as a devDependency in your package.json
  • Running npm install or the equivalent package manager command
  • Checking that the name in your config file matches the name of the plugin package

Resources

For more information, see:

Change Language