Modul 'eslint-plugin-angular' nicht gefunden

8

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:

  • Knoten v0.12.7
  • npm 3.3.4
  • eslint v1.5.0
  • eslint-plugin-eckig 0.12.0

ESLint wird global installiert.

Meine package.json -Datei hat die folgenden Einträge:

  • "eslint": "^ 1.5.0",
  • "eslint-plugin-angular": "^ 0.12.0",

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:

%Vor%

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.

    
jpoveda 20.09.2015, 19:14
quelle

2 Antworten

16

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:

%Vor%

(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: Ссылка

    
jpoveda 21.09.2015, 18:02
quelle
1

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:

%Vor%

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:

%Vor%

(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.

    
Louis 21.05.2016 21:02
quelle

Tags und Links