Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
Node.js 如何在VS代码中使用全局节点包_Node.js_Npm_Visual Studio Code - Fatal编程技术网

Node.js 如何在VS代码中使用全局节点包

Node.js 如何在VS代码中使用全局节点包,node.js,npm,visual-studio-code,Node.js,Npm,Visual Studio Code,如果Node.js包是全局安装的,则Node.js应用程序可以使用它们。但是,只要这些包不是本地安装在项目目录中(在子目录node_模块内),Visual Studio代码就不会接受这些包并指示错误 例如: import * as net from 'net'; 'net'就会用红色下划线标记。如果通过npm-g install@types/node全局安装该包,该包将可用,但代码(v1.17.1)无法识别它 所以我的问题是,有没有办法配置代码来识别全局安装的Node.js包?从VS code

如果Node.js包是全局安装的,则Node.js应用程序可以使用它们。但是,只要这些包不是本地安装在项目目录中(在子目录node_模块内),Visual Studio代码就不会接受这些包并指示错误

例如:

import * as net from 'net';
<只要您不安装
npm install--save@types/node
,code>'net'就会用红色下划线标记。如果通过
npm-g install@types/node
全局安装该包,该包将可用,但代码(v1.17.1)无法识别它


所以我的问题是,有没有办法配置代码来识别全局安装的Node.js包?

从VS code 1.18开始,不支持IntelliSense for global Module。如果您确实需要此功能,请提交新版本

但是,在VS代码中使用JavaScript时,您确实不需要安装@types包。你应该开始下载这些。还有一些方法通过将以下内容添加到
jsconfig.json

"typeAcquisition": {
    "include": [
        "node"
    ]
}

对于TypeScript项目,您应该在本地安装@types作为开发人员依赖项。

有趣的问题,我不能告诉你为什么它不起作用,但我建议你运行
npm安装--save dev@types/node
,这样其他参与项目的开发人员就不需要全局安装types/node。我和你一样,在项目内部本地安装所有包。但有趣的是,为什么代码不能识别全局安装的包。因为如果包是全局安装的,那么项目就可以执行并且可以工作。代码将指示错误,这肯定是错误的指示。您可以在VSCode的git repo中创建问题,它们响应速度非常快,我打赌您会在那里得到答案;-)。现在你是对的,这似乎是一个打字稿的问题。jsconfig.json中的
typeAcquisition
在typescript级别不起作用。typescript也会忽略Tconfig.js(compilerOptions/typeRoots)中的环境变量,如
节点路径
或全局模块路径设置。只要类型定义未在本地安装,传输就会失败。为此问题创建新的。