在WebStorm 11中,Mocha描述了“require()缺失”

我刚刚安装了WebStorm 11,并创build了一个新的项目,但是WebStorm说这个describe方法需要require()

require()调用丢失

我已经添加了明确types的摩卡库,范围是testing目录(这个文件是在)。

这是第11节介绍的新的检查 – 它检查代码中使用的模块是否通过require()语句引用。 对于摩卡testing来说,这种检查确实是多余的(“描述”和其他东西并不需要被明确要求,因为它们被Mocha添加到全球范围内)。 您可以禁用此检查或将其禁止为“描述”,“它”等(请参阅https://www.jetbrains.com/webstorm/help/suppressing-inspections.html )。 另一种select是:创build一个自定义范围,不包括你的spec文件(设置/外观和行为/范围),然后select这个范围作为'Missing require()语句'检查(Settings / Editor / Inspections / Javascript / Node.js)。

相关门票: WEB-18768

编辑:正如在评论中指出的,这个问题中解决的实际问题实际上是IntelliJ 15 / WebStorm 11中的错误(请参阅https://youtrack.jetbrains.com/issue/WEB-18768 )。 我将在下面留下答案,因为许多人在search提供的解决scheme时来到这里。

接受的答案是解决问题的大锤方法。 更好的解决scheme是为testing目录启用mocha-DefinitelyTyped库。 这不仅将删除错误的检查,它将提供更好的语法突出显示。

从检查的描述:

当使用在其可见的JavaScript代码之外定义自己的全局符号的库(例如Mocha中的describe() )时,build议您将相应的TypeScripttypes定义文件添加为Preferences库中的JavaScript库。 语言和框架| JavaScript | 库。

导航到上面引用的“首选项”部分 语言和框架| JavaScript | 库“,并检查mocha-DefinitelyTyped库是否在列表中。

如果mocha-DefinitelyTyped不在列表中,请单击Download…button,在“TypeScript社区存根”部分中find“mocha”,select它,然后单击下载并安装:

“下载库”窗口中显示的“摩卡”库

这个库在列表中被命名为“mocha”,但是一旦导入,它将转换为“mocha-DefinitelyTyped”。

一旦你有mocha-DefinitelyTyped,取消选中其启用checkbox。 完全检查将使其在全球范围内,甚至在testing之外,这将是不准确的。 相反,我们将把它的范围pipe理为仅在您的testing目录中启用。 点击Manage Scopes…button,find你的testing目录,点击Library列,然后select'mocha-DefinitelyTyped'条目。 请参阅下面的截图。

JavaScript库使用范围首选项窗口的屏幕截图