Wie kann ich die WebStorm-Warnung "Nicht aufgelöste Funktion oder Methode" für "erforderlich" (Firefox Add-on SDK) korrigieren?


219

Ich verwende WebStorm 7 für die Entwicklung des Firefox Add-on SDK .

WebStorm zeigt eine Warnung an: "Ungelöste Funktion oder Methode" für require().

Ich möchte die Warnung loswerden.

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

HINWEIS: Ich habe die JavaScript-Bibliothek bereits konfiguriert (siehe / lib / sdk globals).

Umgebung:

  • WebStorm 7.0.2
  • Windows 7 64bit
  • Firefox Add-on SDK 1.15beta1

var pageMod = new require ("sdk / page-mod"); kann das Problem lösen. Beachten Sie das 'neue' im Code
NBK

Ich hatte das gleiche Problem mit WebStorm 8
Anthony O.

Antworten:


351

Meinst du, das require()ist nicht gelöst? Sie müssen entweder require.jszu Ihrem Projekt hinzufügen oder eine Node.js Globalsvordefinierte Bibliothek unter Einstellungen / Sprachen und Frameworks / JavaScript / Bibliotheken aktivieren .

(Bearbeiteter Einstellungspfad von @yurik)

In WebStorm 2016.x-2017.x: Stellen Sie sicher, dass die Node.js Core-Bibliothek in aktiviert ist Settings (Preferences) | Languages & Frameworks | Node.js and NPM

Gehen Sie in IntelliJ 2018.3.2 zu Settings (Preferences) | Languages & Frameworks | Node.js and NPMund aktivieren SieCoding assistance for Node.js


Danke lena. und sorry mein Englisch arm. (> _ <;) Ich möchte Warnung auf Webstorm-Editor bereinigen. (Die Skriptausführung ist kein Problem.) Firefox-Addon-SDK entspricht commonjs, verwendet jedoch nicht node.js. "require" -Methode definiert <sdkroot> /app-extension/bootstrap.js Ich habe bootstrap.js auf Externe Bibliotheken gesetzt, aber die Warnung "ungelöst" nicht gelöscht. <code> let require = cuddlefish.Require (Lader, Modul); Funktion loadSandbox (uri) {let sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; Sandbox zurückgeben; </ code>
Skatsumata

11
Nützliche Antwort! Übrigens, in meinem Webstorm 9 lautet der Speicherort: Sprache & Frameworks -> Javascript -> Bibliotheken ; Ein anderer Ansatz ist die Suche nach "Bibliotheken"
Paul Ho

1
In Webstorm 9 können Sie auch mit der rechten Maustaste auf "Erforderlich" klicken und "Javascript-Bibliothek verwenden-> Node.js Globals verwenden" auswählen
Josh Noe

Aktivieren Sie das NodeJS-Plugin, wenn 'Node.js Globals' in der Bibliotheksliste fehlt.
0x539

1
Zu Ihrer Information: Ich musste meinen Knotenassistenten ausschalten, ungültige Caches und WebStorm neu starten und ihn dann wieder einschalten, damit er funktioniert. WebStorm 2018.3.5
Reactgular

226

Webstorm 11 und 2016.2.3

Aktivieren Sie Node.js Core libraryin WebStorm Einstellungen.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


Ich wollte nur hinzufügen, dass ich das gleiche Problem hatte und obwohl meine Kernbibliothek bereits aktiviert war, schien das Aufrufen des Einstellungsbildschirms das Problem zu beheben.
Rob Rose

1
hat bei mir mit Typoskript mit der neuesten Version von Node und Webstorm nicht funktioniert. Immer noch auf der Suche nach einer Lösung für uns Angular2-Leute. Verwendung innerhalb einer Komponentendefinitionstyles: [require('./app.component.css')]
Andre

Ich habe immer noch den Fehler im Compilerfehler TS2304: Name 'require' kann nicht gefunden werden.
SuperUberDuper

@SuperUberDuper Sie ersetzen sollte ‚require‘ mit import {*} from 'node module'und geben Sie "target": "CommonJS"innerhalb tsconfig.json
Bhoomtawath Plinsut

Funktionierte, sobald ich es in den Webstorm-Einstellungen aktiviert hatte (nicht in den Projekteinstellungen)
U_D

46

In PHPStorm ist es etwas einfacher: Sie können einfach in den Einstellungen nach NPM suchen oder:

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

Klicken Sie dann auf die Schaltfläche "Aktivieren" (anscheinend in neuen Versionen als "Codierungshilfe für Knoten" bezeichnet).


2
Es gab keine Schaltfläche zum Aktivieren, aber es gab [x] Codierungsunterstützung für Node.js, die ich überprüft habe, und es scheint, dass sie jetzt erforderlich ist.
Dustin Graham

Danke für das Update Dustin, habe meine Antwort entsprechend aktualisiert.
Zane Hooper

45

Nachdem wir eine Stunde lang versucht hatten, dies mit allen online gefundenen Lösungen zum Laufen zu bringen, war dies endlich der Trick!

Datei -> Caches ungültig machen / neu starten ...


2
Dies funktionierte für mich mit WebStrom 2017.2.4, um ein Problem zu beheben, bei dem Array.push fälschlicherweise als nicht vorhandene Methode angegeben wurde.
POSIX-konform

1
Arbeitete für mich nach dem Update PhpStorm 2017.2.4 Build-Nummer PS-172.4155.41 . Das Problem war, dass die IDE die ES6-Spezifikationen ignorierte.
Maximilian Fixl

13

Arbeiten mit Intellj 2016, Angular2 und Typescript ... das einzige, was für mich funktioniert hat, war, die Typescript-Definitionen für NodeJS zu erhalten

Holen Sie sich node.d.ts von DefinitelyTyped auf GitHub

Oder einfach laufen lassen:

npm install @types/node --save-dev

Fügen Sie dann in tsconfig.json ein

"types": [
     "node"
  ]

3
Danke! Ich fühle mich wie ich seit Ewigkeiten gesucht habe! Installieren Sie einfach @ types / node und beruhigen Sie WebStorm. Ich werde später über den Compiler sehen.
Kesarion

Danke, das hat bei mir funktioniert. Für mich funktionierte es früher mit der hier akzeptierten Antwort, aber es kam irgendwie zu Konflikten, als ich neue Bibliotheken hinzufügte. Dies hat mein Problem wieder
behoben


5

Eine andere Lösung, die mir sehr geholfen hat, ist das Aktualisieren aller Bibliotheken in "Node.js und NPM". Sie müssen nur alle Bibliotheken markieren und auf den blauen Pfeil klicken - 'Update'Geben Sie hier die Bildbeschreibung ein


4

Lösung für Webstorm 2016.3

1) Klicken Sie auf ALT + F12 (Treminal öffnen)

2) Führen Sie den folgenden Befehl aus: npm install require.js


4

Deaktivieren Sie JetBrains Inspections und holen Sie sich das ESLint-Plugin.

Das einzige, was File | Invalidate caches and restartich tun kann, ist, es lange genug zurückzusetzen, um mich zu täuschen, dass der Fehler weg ist. Sobald die Inspektionen erneut ausgeführt werden, tritt der Fehler wie ein Geschenk auf, das immer wieder gegeben wird.

Ich rettete mich all diese Frustration durch alle JetBrains Inspektionen zu deaktivieren ( Editor> Inspections> deaktivieren JavaScript) Dann habe ich installiert das ESLint Plugin.

Die Prüfung , dass Ursachen „Ungelöste Funktion Methode“ , indem Sie auf JetBrains Kontrollen ausgeschaltet werden kann ( Editor> Inspections> JavaScript) und die Suche nach „Ungelöste Javascript“ und „Ungelöste Javascript - Funktion“ und „Ungelöste Javascript Variable“ Ausschalten

Ich habe sie alle getötet und seitdem meinen Code problemlos bearbeitet.


3

Für WebStorm 2019.3 Datei> Einstellungen oder Einstellungen> Sprachen und Frameworks> Node.js und NPM -> Codierungsassistenz für NodeJs aktivieren

Beachten Sie, dass die zusätzlichen Pakete, die Sie verwenden möchten, enthalten sind.


2

Ok, hier habe ich schon viele Antworten gesehen, ich möchte noch einige hinzufügen, die ungelöste Funktion / Methode / Variablenwarnung behoben sind.

Das ist gelöst "ungelöste Funktion oder Methode für 'erfordern' und eine andere Warnung"

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

Wenn diese Art von Warnung, ungelöste Variable oder ähnliches weiterhin angezeigt wird, können Sie diese Warnungen wie folgt manuell deaktivieren.

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

und Sie werden eine Liste finden und einfach deaktivieren, welche Warnung Sie deaktivieren und dann anwenden möchten.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.