Mocha décrit "require () est manquant" dans WebStorm 11

Je viens d'installer WebStorm 11 et de créer un nouveau projet, mais WebStorm dit qu'un require() est nécessaire pour la méthode describe:

l'appel require() est manquant

J'ai ajouté la bibliothèque definitely-types mocha et la portée est pour le répertoire de test (dans lequel se trouve ce fichier).

28
demandé sur BanksySan 2015-11-09 01:52:13

3 réponses

Il s'agit d'une nouvelle inspection introduite dans v. 11 - elle vérifie si le module utilisé dans le code est référencé via l'instruction require (). Cette inspection, en effet, est redondante pour les tests mocha ('describe' et d'autres choses n'ont pas besoin d'être requises explicitement car elles sont ajoutées à la portée globale par Mocha). Vous pouvez désactiver cette inspection ou la supprimer pour 'describe',' it', etc (voir https://www.jetbrains.com/webstorm/help/suppressing-inspections.html ). Une autre option: créer un personnalisé portée avec vos fichiers de spécifications exclus (Paramètres / Apparence et Comportement / étendues), puis choisissez cette portée pour l'inspection 'Missing require () statement' (paramètres/éditeur/Inspections/Javascript/Node.js).

Billet connexe: WEB-18768

8
répondu lena 2016-01-25 13:55:01

Edit: comme indiqué dans les commentaires, le problème réel abordé dans cette question Est en fait un bug dans IntelliJ 15 / WebStorm 11 (Voir https://youtrack.jetbrains.com/issue/WEB-18768 ). je laisse la réponse ci-dessous parce que beaucoup de gens viennent ici lors de la recherche de la solution fournie.

La réponse acceptée est une approche de masse pour résoudre le problème. Une meilleure solution consiste à activer la bibliothèque Mocha-DefinitelyTyped pour le répertoire de test. Non seulement cela supprimera le inspection erronée, il fournira une meilleure coloration syntaxique.

De la description de l'inspection:

Lorsque vous utilisez des bibliothèques qui définissent leurs propres symboles globaux à l'extérieur leur code Javascript visible (par exemple describe() dans Moka), il est il est recommandé d'ajouter la définition de type TypeScript correspondante fichier en tant que Bibliothèque JavaScript dans les préférences / langages et Frameworks | JavaScript / Bibliothèques.

Accédez à la section des préférences référencé ci-dessus ‘ 'Preferences / Languages & Frameworks / JavaScript / Libraries', et vérifiez si la bibliothèque Mocha-DefinitelyTyped est dans la liste.

Si mocha-DefinitelyTyped n'est pas dans la liste, cliquez sur le bouton Download…, Recherchez 'mocha' dans la section 'stubs de communauté TypeScript', sélectionnez-le, puis cliquez sur Télécharger et installer:

bibliothèque 'mocha' à importer, affichée dans la fenêtre Bibliothèque de téléchargement

La Bibliothèque est nommée juste 'Moka’ dans la liste, mais se convertira en’ Moka-DefinitelyTyped' une fois importée.

Une fois que vous avoir mocha-DefinitelyTyped, décochez sa case à cocher activée. Le laisser complètement vérifié le permettrait globalement, même en dehors des tests, ce qui serait inexact. Au lieu de cela, nous allons gérer sa portée pour être activé uniquement dans votre répertoire de test. Cliquez sur le bouton Manage Scopes…, Recherchez votre répertoire de test, cliquez sur la colonne bibliothèque et sélectionnez l'entrée 'Mocha-DefinitelyTyped'. Voir la capture d'écran ci-dessous.

capture D'écran de la fenêtre préférences des bibliothèques JavaScript

82
répondu BamaPookie 2017-09-11 18:06:29

Il existe actuellement un bug dans Webstorm 2017.3 qui empêche l'installation des bibliothèques Javascript via la méthode’ Preferences | Languages & Frameworks | JavaScript | Libraries | Download and Install'.

Il est suivi ici, et le dernier EAP (Early Access Preview), (Webstorm 2017.3.2 au moment de la rédaction) résout le problème. https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FWEB-29725

Je me suis cogné la tête contre le mur pendant des heures, j'espère que ça aide à quelqu'un d'autre.

0
répondu Dominic Cerquetti 2017-12-23 06:48:13