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 scoped packages 將 eslint-plugin-
前綴放在 org 範圍之後,例如 extends: ["@org/yours"]
以從 @org/eslint-plugin-yours
載入。
解決方案
此問題的常見解決方案包括
- 將所有套件的所有版本升級到最新版本。
- 在您的
package.json
中將外掛程式新增為devDependency
。 - 執行
npm install
或等效的套件管理器命令。 - 檢查您的設定檔中的名稱是否與外掛程式套件的名稱相符。
資源
如需更多資訊,請參閱
- 舊版 ESLint 設定檔,以取得有關舊版 ESLint 設定格式的文件
- 設定外掛程式,以取得有關如何從外掛程式擴充的文件
- 建立外掛程式,以取得有關如何定義外掛程式的文件