ESLint 找不到插件 …
症状
使用 旧版 ESLint 配置系统 时,您可能在安装依赖项后运行 ESLint 时遇到此错误。
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}".
原因
旧版 ESLint 配置文件 通过其包名称指定可共享的配置。该包名称传递给 Node.js 的 require()
,它会在本地 node_modules/
目录下查找包。例如,以下 ESLint 配置将首先尝试加载位于 node_modules/eslint-plugin-yours
的模块。
module.exports = {
extends: ["plugin:eslint-plugin-yours/config-name"],
};
如果在任何搜索的 node_modules/
中都找不到该包,ESLint 将打印上述错误。
出现这种情况的常见原因包括
- 未运行
npm install
或等效的包管理器命令 - 插件的区分大小写的名称输入错误
插件名称变体
请注意,eslint-plugin-
插件名称前缀可以省略,以保持简洁,例如 extends: ["yours"]
。
@
npm 范围包 将 eslint-plugin-
前缀放在组织范围之后,例如 extends: ["@org/yours"]
从 @org/eslint-plugin-yours
加载。
解决方案
解决此问题的常见方法包括
- 将所有包的所有版本升级到最新版本
- 在您的
package.json
中将插件添加为devDependency
- 运行
npm install
或等效的包管理器命令 - 检查您的配置文件中的名称是否与插件包的名称匹配
资源
有关更多信息,请参阅
- 旧版 ESLint 配置文件,了解有关旧版 ESLint 配置格式的文档
- 配置插件,了解有关如何从插件扩展的文档
- 创建插件,了解有关如何定义插件的文档