在WebStorm中为通过npm安装的node.js模块启用自动完成功能

时间:2012-12-13 14:50:41

标签: node.js intellij-idea webstorm

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

我使用

npm install -g module-name
全局安装了多个节点模块,并使用
npm link module-name

将它们链接到项目中

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

此外,WebStorm为我从npm安装的模块调用的任何函数发出警告“未解析的函数或方法xyz”。

如何使WebStorm自动完成并通常了解我require已安装的模块?

4 个答案:

答案 0 :(得分:17)

我不确定这是否适用于您的特定情况,但我在WebStorm 5.0.4中遇到了类似的问题,而所需的任何内容都不是自动完成的。我可以通过进入我的项目设置,导航到JavaScript来解决此问题库,检查“Node.js核心模块”和“Node.js Globals”,然后单击“应用”。

答案 1 :(得分:2)

根据我在评论中发布的链接,您需要使用
添加全局npm目录   偏好 - >目录

您可以通过运行找到全局目录的位置:

> npm ls -g

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

答案 2 :(得分:2)

我的回答仅适用于WebStorm 7以后:

  1. 打开“设置”对话框(“文件”|“默认设置”)并选择“JavaScript” Node.js的

    1. 指定Node.js解释器的路径,Node.js版本将自动确定。

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

    3. 最后为刚刚创建的JavaScript库定义一个使用范围。默认情况下,整个项目将添加到使用范围。如果这对您不起作用,您可以通过单击“编辑使用范围”超链接来调整使用范围。

  2. 如果您需要更多信息,请阅读JetBrain官方博客Attaching the sources of Node.js core modules,理想情况下应该解决您的问题,它实际上至少对我有用。

答案 3 :(得分:0)

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

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

在上面的例子中,sys只会将导出作为自动完成选项,因为http可以正常工作。如果你这样做:

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

sys和http都可以正常工作。