2016-03-02 98 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找到。