Comment puis-je corriger l'avertissement WebStorm «Fonction ou méthode non résolue» pour «exiger» (SDK du module complémentaire Firefox)


219

J'utilise WebStorm 7 pour le développement du SDK du module complémentaire Firefox .

WebStorm affiche un avertissement: "Fonction ou méthode non résolue" pour require().

Je veux me débarrasser de l'avertissement.

var pageMod = require("sdk/page-mod");

NOTE: J'ai déjà configuré la bibliothèque JavaScript (référez-vous aux globaux / lib / sdk).

Environnement:

  • WebStorm 7.0.2
  • Windows 7 64 bits
  • Module complémentaire Firefox SDK 1.15beta1

var pageMod = new require ("sdk / page-mod"); peut résoudre le problème. Remarquez le «nouveau» dans le code
NBK

J'ai eu le même problème avec WebStorm 8
Anthony O.

Réponses:


351

Voulez-vous dire que ce require()n'est pas résolu? Vous devez soit ajouter require.jsà votre projet ou activer la Node.js Globalsbibliothèque prédéfinie dans Paramètres / Langues et cadres / JavaScript / Bibliothèques.

(Chemin des paramètres modifiés par @yurik)

Dans WebStorm 2016.x-2017.x: assurez-vous que la bibliothèque Node.js Core est activée dans Settings (Preferences) | Languages & Frameworks | Node.js and NPM

Dans IntelliJ 2018.3.2, accédez à Settings (Preferences) | Languages & Frameworks | Node.js and NPMet activezCoding assistance for Node.js


Merci léna. et désolé mon pauvre anglais. (> _ <;) Je veux nettoyer l'avertissement sur webstorm-editor. (l'exécution du script ne pose aucun problème.) Firefox-Addon-SDK est conforme à commonjs, mais n'utilise pas node.js. Méthode "require" définie <sdkroot> /app-extension/bootstrap.js J'ai défini bootstrap.js sur les bibliothèques externes, mais je n'efface pas l'avertissement "non résolu". <code> laissez require = cuddlefish.Require (chargeur, module); function loadSandbox (uri) {let sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; retour bac à sable; </code>
skatsumata

11
Réponse utile! BTW, dans mon webstorm 9, L'emplacement est: Language & Frameworks -> Javascript -> Libraries ; Une autre approche consiste à rechercher «Bibliothèques»
Paul Ho

1
Dans Webstorm 9, vous pouvez également cliquer avec le bouton droit sur "exiger" et choisir "Utiliser la bibliothèque Javascript-> Node.js Globals"
Josh Noe

Activez le plugin NodeJS si «Node.js Globals» est absent de la liste des bibliothèques.
0x539

1
Pour info: j'ai dû désactiver mon assistance de nœud, les caches invalides et redémarrer WebStorm, puis le réactiver pour le faire fonctionner. WebStorm 2018.3.5
Reactgular

226

Webstorm 11 et 2016.2.3

Activez Node.js Core librarydans les paramètres Webstorm.

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici


Je voulais juste ajouter que j'avais le même problème et bien que ma bibliothèque principale soit déjà activée, aller à l'écran des paramètres semblait résoudre le problème.
Rob Rose

1
n'a pas fonctionné pour moi en utilisant tapuscript avec la dernière version de node et webstorm. Toujours à la recherche d'une solution pour nous, angular2 people. Utilisation dans une définition de composantstyles: [require('./app.component.css')]
Andre

J'ai toujours l'erreur dans l'erreur du compilateur TS2304: Impossible de trouver le nom 'require'.
SuperUberDuper

@SuperUberDuper Vous devez remplacer «require» par import {*} from 'node module'et spécifier à l' "target": "CommonJS"intérieur tsconfig.json
Bhoomtawath Plinsut

A fonctionné dès que je l'ai activé dans les préférences de Webstorm (pas les paramètres du projet)
U_D

46

Dans PHPStorm, c'est un peu plus facile: vous pouvez simplement rechercher NPM dans les paramètres ou:

File > Settings > Language & Frameworks > Node.js and NPM

Cliquez ensuite sur le bouton d'activation (apparemment dans les nouvelles versions, il s'appelle "Aide au codage pour le nœud").


2
Il n'y avait pas de bouton d'activation, mais il y avait [x] une assistance au codage pour Node.js que j'ai vérifiée, et il semble reconnaître la nécessité maintenant.
Dustin Graham

Merci pour la mise à jour Dustin, mis à jour ma réponse en conséquence.
Zane Hooper

45

Après avoir passé une heure à essayer de faire fonctionner cela en utilisant toutes les solutions trouvées en ligne, cela a finalement fait l'affaire!

Fichier -> Invalider les caches / redémarrer ...


2
Cela a fonctionné pour moi avec WebStrom 2017.2.4 pour résoudre un problème où Array.push était faussement indiqué comme une méthode qui n'existait pas.
Conforme à POSIX

1
A fonctionné pour moi après la mise à jour de PhpStorm 2017.2.4 Numéro de build PS-172.4155.41 . Le problème était que l'IDE a ignoré les spécifications ES6.
Maximilian Fixl

13

Travailler avec Intellj 2016, Angular2 et Typescript ... la seule chose qui a fonctionné pour moi a été d'obtenir les définitions de typescript pour NodeJS

Obtenez node.d.ts de DefinitelyTyped sur GitHub

Ou lancez simplement:

npm install @types/node --save-dev

Ensuite, dans tsconfig.json, incluez

"types": [
     "node"
  ]

3
Merci! J'ai l'impression de chercher depuis des lustres! L'installation de @ types / node a calmé WebStorm; Je verrai le compilateur plus tard.
Kesarion

Merci, cela a fonctionné pour moi. Pour moi, cela fonctionnait en utilisant la réponse acceptée ici, mais cela a commencé à entrer en conflit lorsque j'ai ajouté de nouvelles bibliothèques. Cela a à nouveau résolu mon problème
viorel


5

Une autre solution qui m'a beaucoup aidé est de mettre à jour toutes les bibliothèques dans "Node.js et NPM". Il vous suffit de marquer toutes les bibliothèques et de cliquer sur la flèche bleue - «mise à jour»entrez la description de l'image ici


4

Solution sur Webstorm 2016.3

1) cliquez sur ALT + F12 (ouvrir le tréminal)

2) exécutez la commande: npm install require.js


4

Désactivez les inspections JetBrains et obtenez le plugin ESLint.

La seule chose qui File | Invalidate caches and restart faire pour moi est de le réinitialiser suffisamment longtemps pour me faire croire que l'erreur a disparu. Une fois les inspections exécutées à nouveau, l'erreur revient comme un cadeau qui continue de donner.

Je me suis sauvé tout ce que la frustration en désactivant toutes les inspections de JetBrains ( Editor> Inspections> décocherJavaScript ) Ensuite , j'ai installé le plugin ESLint.

Peut être mis à l'inspection qui cause « méthode de la fonction Unresolved » off en allant aux inspections de JetBrains ( Editor> Inspections>JavaScript ) et la recherche de « Unresolved Javascript » et éteindre « fonction Javascript Unresolved » et « variable Javascript Unresolved »

Je les ai tous tués et j'ai depuis édité mon code sans tracas.


3

Pour WebStorm 2019.3 Fichier> Préférences ou paramètres> Langues et cadres> Node.js et NPM -> Activer l'assitance de codage pour NodeJs

Notez que les packages supplémentaires que vous souhaitez utiliser sont inclus.


2

Ok, ici j'ai vu beaucoup de réponses déjà données, je veux en ajouter d'autres qui sont des avertissements fonction / méthode / variable non résolus.

Cela est résolu "fonction ou méthode non résolue pour 'require' et un autre avertissement"

Go -> Preferences-> Languages & Frameworks -> Node.js and NPM, then checkmark the "Coding assistance for Node.js"

Si vous voyez toujours ce type d'avertissement, une variable non résolue ou quelque chose comme ça, vous pouvez désactiver manuellement ces avertissements par la suite.

Go -> Preferences-> Editor-> Inspections-> JavaScript-> General.  

et vous trouverez une liste et décochez l'avertissement que vous souhaitez désactiver, puis appliquez.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.