在WebStorm中为通过npm安装的node.js模块启用自动填充function

我正在使用WebStorm 5.0.4来开发一个node.js应用程序。

我使用全局安装了几个节点模块

  npm install -g模块名称 

并使用它们将其链接到项目中

  npm链接模块名称 

自动完成不适用于任何npm安装的模块。 它只适用于核心模块(例如httppath )。

此外,对于我从npm安装的模块调用的任何函数,WebStorm都会给出“未parsing的函数或方法xyz”警告。

我如何使WebStorm自动完成,并一般意识到我require安装的模块?

我不确定这是否解释了您的具体情况,但是我在WebStorm 5.0.4中遇到了类似的问题,而所需的任何操作都不能自动完成。 我能够通过进入我的项目设置,导航到JavaScript |来解决这个问题 库,检查“Node.js核心模块”和“Node.js全局”,然后单击“应用”。

根据我在评论中发布的链接,您需要使用添加全局npm目录
首选项 – >目录

您可以通过运行找出您的全局目录是在哪里:

 > npm ls -g 

资料来源:http: //youtrack.jetbrains.com/issue/WEB-1880

我的答案只适用于WebStorm 7以上:

  1. 打开设置对话框(文件|默认设置)并selectJavaScript | Node.js的

    1. 指定Node.js解释器的path,并自动确定Node.js的版本。

    2. 单击configuration,然后单击“下载并configuration”button,将Node.js源下载到IntelliJ系统本地文件夹。 将从提取的核心模块源文件中创build一个名为“Node.js v。Core Library”的JavaScript库。

    3. 最后为刚刚创build的JavaScript库定义一个使用范围。 整个项目默认会被添加到使用范围。 如果这不适用于您,您可以通过单击“编辑使用范围”超链接来调整使用范围。

如果您需要更多的信息,请阅读JetBrain关于附加Node.js核心模块源代码的官方博客,理想情况下应该解决您的问题,至less对我来说是这样。

当你用逗号声明多个模块时会发生这种情况,例如:

 var sys = require("sys"), http= require("http"); 

在上面的例子中,系统将只有导出为一个自动完成选项,因为http将正常工作。 如果你这样做:

 var sys = require("sys"); var http= require("http"); 

sys和http都能正常工作。