2016-03-02 4 views
5

Here ein Beispiel gegeben, wie bestimmte Klassen von einem Modul zu importieren:"lösen kann nicht Symbol" bei der Verwendung von ES6 `import` Syntax

import {ModalContainer, ModalDialog} from 'react-modal-dialog'; 

jedoch PhpStorm (neueste EAP) ist mir einen Fehler:

Cannot resolve symbol 'ModalDialog'

installierte ich das Paket mit npm install react-modal-dialog und es ist in node_modules vorhanden.

Das Äquivalent var {ModalContainer, ModalDialog} = require('react-modal-dialog'); funktioniert gut.

+1

Haben Sie die js-Sprachversion auf ECMA-Skriptharmonie eingestellt? – winhowes

+0

Sie transpilieren den Code vor der Ausführung? – naomik

+2

@winhowes Ja, geschieht sowohl in "ECMAScript 6" und "JSX Harmony" -Modus. – AndreKR

Antwort

4

Ich denke, dass es durch PHPSstorm verursacht. Die IDE kann nicht understand die import Syntax beim Importieren eines CommonJS-Moduls.

Ich habe diese Warnung auch bei Verwendung von WebStorm 2016.1.2 erhalten.

Unter react und react-router als Beispiel:

  • react ist eine Commonjs-Modul, mit ES5 Syntax entwickelt;
  • react-router ist mit ES2015-Syntax entwickelt und von Babel kompiliert.

WebStorm 2016.01.02 kann Link von react-router Modul exportiert lösen, aber createClass exportiert durch react Modul nicht auflösen kann.

aktualisieren:

browser-sync ist ein Commonjs Modul mit ES5 entwickelt, auch. Aber es funktioniert gut auf WebStorm, WebStorm kann alle API auflösen, die von browser-sync exportiert werden.

Es verblüffte mich, dass WebStorm react exportierte API nicht auflösen kann.

+1

Es gibt viele Quellen im Internet, die sagen, dass PhpStorm ES6 versteht, Ihre Antwort behauptet es nicht. Bitte fügen Sie Details/Referenzen hinzu. – AndreKR

+0

@AndreKR Sie können' react' mit und 'react-router' vergleichen, die IDE kann auflösen die API wird von 'react-router' exportiert, aber nicht 'react' – hegfirose

+0

Dies ist die berechtigte Erklärung, leider kann ich 4 Monate später immer noch keinen Workaround finden. – EranSch

2

begegnete ich dies, wenn ein Projekt Reagieren Einrichtung und alles, was ich tat, war die nur nach react Typoskript Definition, in meinem Fall des Imports herunterladen.

enter image description here

Anweisungen für Bibliotheken zu Ihrem Projekt hinzufügen können auf webstorm's help page finden.

Verwandte Themen