我正在使用WebStorm 5.0.4开发node.js应用程序。
我使用
npm install -g module-name全局安装了多个节点模块,并使用
npm link module-name
将它们链接到项目中
自动完成功能不适用于任何已安装的npm模块。它仅适用于核心模块(例如http
或path
)。
此外,WebStorm为我从npm安装的模块调用的任何函数发出警告“未解析的函数或方法xyz”。
如何使WebStorm自动完成并通常了解我require
已安装的模块?
答案 0 :(得分:17)
我不确定这是否适用于您的特定情况,但我在WebStorm 5.0.4中遇到了类似的问题,而所需的任何内容都不是自动完成的。我可以通过进入我的项目设置,导航到JavaScript来解决此问题库,检查“Node.js核心模块”和“Node.js Globals”,然后单击“应用”。
答案 1 :(得分:2)
根据我在评论中发布的链接,您需要使用
添加全局npm目录
偏好 - >目录
您可以通过运行找到全局目录的位置:
> npm ls -g
答案 2 :(得分:2)
我的回答仅适用于WebStorm 7以后:
打开“设置”对话框(“文件”|“默认设置”)并选择“JavaScript” Node.js的
指定Node.js解释器的路径,Node.js版本将自动确定。
单击“配置”,然后单击“下载并配置”按钮将Node.js源下载到IntelliJ系统本地文件夹。将从提取的核心模块源文件中创建名为“Node.js v.Core Library”的JavaScript库。
最后为刚刚创建的JavaScript库定义一个使用范围。默认情况下,整个项目将添加到使用范围。如果这对您不起作用,您可以通过单击“编辑使用范围”超链接来调整使用范围。
如果您需要更多信息,请阅读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都可以正常工作。