Mocha ' s beschreiben, "require() fehlt" in WebStorm 11
Habe ich gerade installiert WebStorm 11 und ein neues Projekt erstellt, jedoch WebStorm ist zu sagen, dass eine require()
ist erforderlich für die describe
Methode:
Habe ich das auf jeden Fall-Typen Mokka-Bibliothek und der Bereich für die test-Verzeichnis (in dem sich diese Datei im).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit: Wie bereits angemerkt in den Kommentaren, das eigentliche Problem angesprochen, diese Frage ist tatsächlich ein bug in IntelliJ 15 /WebStorm 11 (siehe https://youtrack.jetbrains.com/issue/WEB-18768). Ich gehe die Antwort unten, da kommen viele Leute hier bei der Suche nach der Lösung.
Die akzeptierte Antwort ist eine Brechstange, um das problem zu lösen. Eine bessere Lösung ist es, dem Mokka-DefinitelyTyped Bibliothek für das test-Verzeichnis. Dies wird nicht nur entfernen Sie die fehlerhafte Inspektion, es wird einen besseren syntax-highlighting.
Aus der Beschreibung der Inspektion:
Navigieren Sie zu der Vorliebe Abschnitt oben verwiesen, auf "Einstellungen | Sprachen & Frameworks | JavaScript | Bibliotheken', und überprüfen Sie, ob der Mokka-DefinitelyTyped Bibliothek in der Liste.
Wenn
@types/mocha
(früher benanntmocha-DefinitelyTyped
) ist nicht in der Liste, klicken Sie auf dieDownload…
- Taste, find 'mocha' in der 'Typoskript Gemeinschaft stubs" Abschnitt, wählen Sie es und klicken Sie auf " Herunterladen und Installieren:Die Bibliothek hat den Namen nur
mocha
in der Liste, aber wird umwandeln in@types/mocha
(vor Anfang 2019, würde es zu konvertierenmocha-DefinitelyTyped
) einmal importiert.Sobald Sie haben die Mokka-DefinitelyTyped, deaktivieren Sie dessen Kontrollkästchen "Aktiviert". Verlassen Sie es vollständig überprüft ist, würde ermöglichen es weltweit, auch außerhalb des tests, das wäre falsch. Stattdessen werden wir verwalten im Rahmen Ihrer Möglichkeiten aktiviert werden, die nur in Ihrem test-Verzeichnis. Klicken Sie auf die
Manage Scopes…
- Taste, finden Sie Ihre test-Verzeichnis, klicken Sie auf die Spalte "Bibliothek", und wählen Sie die "Mokka-DefinitelyTyped' - Eintrag. Siehe auch den screenshot unten.typings
Verzeichnis, die ich bin Referenzierung von WebStorm jetzt, aber es dauert 1-2 Minuten pro Abhängigkeit einzurichten.I've added the definitely-types mocha library and the scope is for the test directory
. Problem wurde gelöst, in 2016.x durch die Festsetzung youtrack.jetbrains.com/issue/WEB-18768 verlinkt auf die richtige AntwortDies ist eine neue Prüfung eingeführt, in v. 11 - es wird überprüft ob das Modul verwendet, im code referenziert wird durch require () - Anweisung. Diese Inspektion ist in der Tat überflüssig für Mokka-tests ('beschreiben' und andere Sachen brauchen nicht erforderlich, ausdrücklich Hinzugefügt werden, um den globalen Gültigkeitsbereich durch die Mokka). Sie können entweder deaktivieren Sie diese Inspektion oder unterdrücken es für 'beschreiben', 'es', usw. (siehe https://www.jetbrains.com/webstorm/help/suppressing-inspections.html).
Eine weitere option: erstellen eines benutzerdefinierten Bereichs mit Ihren spec-Dateien ausgeschlossen werden (Einstellungen/Erscheinungsbild & Verhalten/Bereiche), dann wählen Sie diesen Bereich für "Fehlende require () - Anweisung' inspection (Settings/Editor/Inspections/Javascript/Node.js).
Verwandte ticket: WEB-18768
Gibt es momentan einen bug in Webstorm 2017.3, die verhindert die installation von Javascript Bibliotheken, über die "Einstellungen | Sprachen & Frameworks | JavaScript | Bibliotheken | Download und Installieren" - Methode.
Er verfolgt hier, und die neuesten EAP (Early Access Preview), (Webstorm 2017.3.2 zum Zeitpunkt des Schreibens) behebt das Problem.
https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FWEB-29725
Ich schlug meinen Kopf gegen die Wand auf dieser für Stunden, hoffentlich hilft jemand anderes.
Wenn Sie bereits installiert haben, Mokka weltweit und wenn es immer noch nicht funktioniert, versuchen Sie dann auf "alle entfernen" Ausführen/Debug-Konfigurationen.
Aktualisiert npm Läufer und ich hoffe, dass es das problem löst.