Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WebStorm中为通过npm安装的node.js模块启用自动完成_Node.js_Intellij Idea_Webstorm - Fatal编程技术网

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

在WebStorm中为通过npm安装的node.js模块启用自动完成,node.js,intellij-idea,webstorm,Node.js,Intellij Idea,Webstorm,我正在使用WebStorm 5.0.4开发node.js应用程序 我使用npm install-g module name全局安装了几个节点模块,并使用npm link module name将它们链接到项目中 npm install -g module-name npm link module-name 自动完成不适用于任何npm安装的模块。它仅适用于核心模块(例如http或path) 此外,WebStorm对我从npm安装的模块调用的任何函数发出警告“未解析函数或方法xyz” 如何使WebS

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

我使用npm install-g module name全局安装了几个节点模块,并使用npm link module name将它们链接到项目中

npm install -g module-name npm link module-name 自动完成不适用于任何npm安装的模块。它仅适用于核心模块(例如
http
path

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


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

根据我在评论中发布的链接,您需要使用
首选项->目录

通过运行以下命令,可以找到全局目录的位置:

> npm ls -g

来源:

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

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

var sys = require("sys"),
    http= require("http");
在上面的示例中,sys将仅具有作为自动完成选项的导出,其中as-http可以正常工作。如果您这样做:

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

sys和http都可以正常工作。

我的答案仅适用于WebStorm 7以后的版本:

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

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

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

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


  • 如果您需要更多信息,请在JetBrain的官方博客上阅读,这应该可以很好地解决您的问题,至少对我来说是这样。

    我将全局npm全局目录添加到project的内容根目录中,但没有帮助。我使用异步模块,我有
    var async=require('async')
    但是当我键入
    async.
    时,唯一可用的自动完成功能是
    index.js
    节点模块/async
    导出
    。有什么想法吗?你试过让缓存失效吗?文件->使缓存无效。然后重新启动WebStorm。我刚刚完成了失效和重新启动。自动完成没有变化。我尝试了模块
    async
    express
    。唯一的自动完成选项是从
    node_modules/async
    node_modules/express
    中相应的
    index.js
    文件中导出
    。如果有人来到这里,你可以通过谷歌搜索“在WebStorm中为node.js启用自动完成”,确保你已经做到了这一点。这对我来说很管用,在新版本中已经修复了