2016-03-02 96 views
5

Here給出一個例子如何從一個模塊中導入特定的類時「無法解析符號」:使用ES6`import`語法

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

然而,PhpStorm(最新EAP)給我一個錯誤:

Cannot resolve symbol 'ModalDialog'

我與npm install react-modal-dialog安裝的包,它是存在於node_modules

等效的var {ModalContainer, ModalDialog} = require('react-modal-dialog');工作正常。

+1

您是否將js語言版本設置爲ECMA腳本和諧? – winhowes

+0

在執行代碼之前你是在編譯代碼嗎? – naomik

+2

@winhowes是的,發生在「ECMAScript 6」和「JSX Harmony」模式中。 – AndreKR

回答

4

我認爲這是由PHPStorm引起的。導入CommonJS模塊時,IDE不能使用understandimport語法。

我也在使用WebStorm 2016.1.2時得到了這個警告。

reactreact-router爲例如:

  • react是CommonJS的模塊,與ES5語法開發;
  • react-router是用ES2015語法開發的,由Babel編譯。

WebStorm 2016年1月2日可以解決Link通過react-router模塊出口,但不能解決createClass通過react模塊導出。

更新

browser-sync是ES5開發的CommonJS的模塊了。但它在WebStorm上運行良好,WebStorm可以解析由browser-sync導出的所有API。

讓我感到困惑的是,WebStorm無法解析react導出的API。

+1

互聯網上有很多消息來源表示PhpStorm理解ES6,你的回答聲稱不會。請添加詳細信息/引用 – AndreKR

+0

@AndreKR你可以比較'react'和'react-router',IDE可以解析'react-router'導出的API,但不是'react'。 – hegfirose

+0

這是合法的解釋。可悲的是,4個月後,我仍然找不到解決方法。 – EranSch

2

我建立一個陣營項目時遇到的這一點,我所做的只是下載導入的打字稿定義,於我而言只是搜索react

enter image description here

有關添加庫到您的項目可以在webstorm's help page找到。