Ich versuche, ESLint in mein Projekt zu integrieren, und ich stoße auf den Fehler: "Modul 'eslint-plugin-angular'" kann nicht gefunden werden, wenn ich $ eslint *.js
ausführe.
Die einzige Möglichkeit, dies zu erreichen, ist die globale Installation von eslint-plugin-angular, aber das scheint falsch zu sein (es sei denn, ich verpasse etwas?).
Ich renne:
ESLint wird global installiert.
Meine package.json
-Datei hat die folgenden Einträge:
Ich habe $ rm -rf node_modules
und rerun $ npm install
ausgeführt, um sicherzustellen, dass keine Art von npm-Abhängigkeitsproblem oder Korruption vorliegt. Ich habe auch die Verzeichnisberechtigungen in node_modules
überprüft, um sicherzustellen, dass der Zugriff möglich ist.
Mein .eslintrc
enthält:
Was fehlt mir hier? Danke! ps. Ich habe ein Ticket auf GitHub geöffnet: Ссылка - ich frage mich nur, ob jemand in der Stack-Community dies getan hat lauf hinein.
Hier finden Sie die Antwort: Ссылка
"Hinweis: Eine global installierte Instanz von ESLint kann nur global installierte ESLint-Plugins verwenden. Eine lokal installierte ESLint kann sowohl lokal als auch global installierte ESLint-Plugins sicherstellen."
Dies fällt unter das Kleingedruckte in der Dokumentation. : /
Es gibt zwei Möglichkeiten, damit umzugehen:
(1) Installieren Sie das / die Plugin (s) global. Ich bin kein besonderer Fan von diesem, weil ich mehrere Client-Projekte habe, die sich auf verschiedenen Versionen von Abhängigkeiten befinden, und ich kann nicht unbedingt alle auf die gleiche Version stoßen.
(2) Installieren Sie das / die Plugin (s) lokal und fügen Sie ein Skript zu Ihrer package.json
-Datei hinzu:
(Wenn Sie völlig neu sind, denken Sie daran, dass ... other stuff
nicht das ist, was Sie wirklich in Ihrer package.json Datei haben möchten ...)
Mit dieser Einstellung kann npm run eslint
verwendet werden, um eslint
zu verwenden, und ich verwende npm run lint
, um mein Projekt tatsächlich zu flinken.
Sie finden die Dokumentation zum Feld scripts
für die Datei package.json
hier: Ссылка
Sie werden dieses Problem wahrscheinlich immer dann kennen, wenn Sie einem Leitfaden folgen, der Ihnen die Verwendung von npm install -g eslint
empfiehlt, was die empfohlene Methode zur Installation von ESLint ist, und Sie dann sofort anweist, eslint --init
zum Erstellen zu verwenden eine Konfiguration für Ihr Projekt. Das Problem ist, dass eslint --init
die benötigten Pakete installiert, aber sie lokal installiert, auch wenn es von einem global installierten eslint
ausgeführt wird. Ich war nicht klüger, bis ich versuchte, eine Datei in Emacs zu bearbeiten und flycheck
meldete einen Fehler von ESLint:
Ich möchte sowohl eine globale als auch eine lokale Installation zulassen. Ich könnte den globalen für experimentellen Code verwenden, den ich noch überprüfen möchte, der aber keinem bestimmten Projekt angehört, und lokale Installationen mit spezifischeren Anforderungen. Also habe ich ein Skript erstellt, das als ~/bin/eslint
gespeichert ist. Da ~/bin
früh an meinem PATH
ist, wird dieses Skript anstelle von global install eslint
verwendet:
(Für diejenigen, die nicht wissen, exec
ist endgültig. Wenn der erste exec
ausgeführt wird, dann wird nichts danach ausgeführt.)
Dieses Skript geht von einer für npm
geeigneten Projektstruktur aus (d. h. es gibt package.json
, die npm prefix
finden kann). Es müsste an andere Situationen angepasst werden.
Mein globales eslint
befindet sich an einem ungewöhnlichen Ort, passen Sie das Skript so an, dass es dorthin zeigt, wo Sie es installiert haben.
Tags und Links eslint