2016-07-29 23 views
0

Ich habe gerade eine neue NodeJS-Anwendung in PHPStorm gestartet, die einige externe Pakete verwendet. Leider sehe ich eine Menge von Unresolved variable oder Unresolved function or method Warnungen:PhpStorm: Ungelöste Variablen, Methoden & Funktionen für NodeJS-Module

enter image description here

Offensichtlich ist dies sehr störend. Kann ich die IDE irgendwie manuell anweisen, einige Definitionsdateien der externen Pakete zu laden, die ich verwende (z. B. mongoose in diesem Beispiel)?

Wenn ich keine andere Lösung finden würde ich einfach diese Kontrollen deaktivieren, die Art eines schlechten „Rückfall“ ist, da sie in der Regel ein paar gute Tipps für Tippfehler liefern usw.


Lösung:
ich hatte zwei verschiedene node_modules Verzeichnisse in meinem Projekt:

project\client\node_modules\... 
project\server\node_modules\... 

Beide wurden als excluded markiert. Ich habe einfach die excluded Marke entfernt (Rechtsklick auf den Ordner in der Projektnavigation). PhpStorm zeigt nun die korrekte Autovervollständigung an und die Unresolved Warnungen sind weg.

Antwort

0

Wenn Sie jetbrains suite haben, ist es besser, webstorm für nodejs Anwendung zu verwenden.

Allerdings, wenn Sie phpstorm halten möchten. Sie können ein jshint Modul für globale Variablen Deklaration verwenden, und jsdoc für variable Instanz verwenden:

/** 
* Description 
* @type {Schema} 
* @property {object} methods 
*/ 
var Schema; 

- EDIT -

Haben Sie Ihre PhpStorm als jetbrains doc einrichten? Work on nodejs with phpstorm

+0

Ja, ich möchte bei PhpStorm bleiben. Jsdoc selbst zu schreiben ist nicht wirklich eine Option, da das eine große Aufgabe wäre. Die ~ 30 Codezeilen im obigen Screenshot haben bereits 7 unaufgelöste Vars & Methoden, die manuell bearbeitet werden müssten ... – suamikim

+0

FYI: PHPStorm = WebStorm + PHP + Datenbank/SQL – LazyOne

+0

@LazyOne Sorry, das stimmt nicht mehr, WebStorm hat andere Release-Zyklus als PHPStorm, kann es neue JS/CSS/HTML-orientierte Funktionen schneller als PHPStorm, PHPStorm nicht JS-Teil wie Webstorm unterstützt. Webstorm hat einen direkten npm Modulscanner, der hier die Lösung des Problems darstellt. –