我刚刚安装了 WebStorm,正在开发一个小型的 Node.js 应用程序。
我已经附上了 Node.js 的源代码,在点击 Node.js 设置时,我可以看到它能够识别我的各种节点模块等等。
我遇到了两个问题:
- 未解决的变量或类型:WebStorm 似乎无法识别简单的 API 方法 (
exports
,require
)。 - 没有代码提示…:如果我调用
require('winston')
,它告诉我没有代码提示。(我能否添加源代码?)
我刚刚安装了 WebStorm,正在开发一个小型的 Node.js 应用程序。
我已经附上了 Node.js 的源代码,在点击 Node.js 设置时,我可以看到它能够识别我的各种节点模块等等。
我遇到了两个问题:
exports
, require
)。require('winston')
,它告诉我没有代码提示。(我能否添加源代码?)对于WebStorm 2018及更高版本:
在 设置 -> 语言和框架 -> Node.js and NPM 中,勾选 Coding assistance for Node.js :
在较旧的WebStorm版本中,这被称为 Enable Node.js Core library。
如果即使启用了该选项仍然看到无法识别的Node符号,请取消勾选该选项、重启WebStorm,然后右键单击警告并选择 Enable Node.js coding assistance 或者再次勾选该选项。等待WebStorm显示它正在索引文件。(今天刚遇到这个问题,看起来像是WebStorm的一个bug,我所写的内容解决了这个情况。)
针对WebStorm 7至10版本(在OSX上)…
选择WebStorm → 首选项 → 语言和框架 → JavaScript → 库
选择"Node.js全局变量"和"Node.js vXXX核心模块"。
在使用WebStorm和Node.js时,这两个代码段经常会出现“伪警告”:
伪警告情况1:
module.exports = ...
/** @namespace module.exports **/
假阳性警告案例2:
let something = global.something ;
这给了我警告 "未解决的全局变量或类型"。我能够通过在其上方放置以下内容来消除由此引起的警告:
/** @namespace global **/
/** @namespace global **/
/** @namespace console **/
/** @namespace process **/
/** @namespace Buffer **/
/** @namespace process.stdin **/
/** @namespace module.exports **/
我正在使用 WebStorm 2022.2.3
正如我在WebStorm says console is an unresolved variable问题中所回答的那样,要解决新版Webstorm上的这些问题,您需要启用Node.js编码辅助。
为此,请进入设置
> 语言和框架
> Node.js和NPM
,然后单击Node.js编码辅助
选项,最后单击确定以保存:
这将解决所有未解析的 Node.js 变量和函数。
在新的 Webstorm 版本中,只需将鼠标悬停在错误上并点击 更多操作...
(或按下 ALT+ENTER),然后选择启用 Node.js 编码辅助即可解决此问题。
升级到Webstorm 8或更高版本将解决您的require方法问题。如之前发布的那样,通过检查设置> JavaScript>库> Node.js是否全部选中,可以解决您的问题。