Visual Studio Code Intellisense不适用于NPM包

时间:2018-02-14 06:09:37

标签: visual-studio-code

我在Windows上使用Visual Studio Code 1.20.0。我的intellisense工作不正常,例如:visual studio代码无法检测到youtubedl包有getinfo方法。社区是否会对我需要做些什么才能让intellisense正常工作?如果没有,我如何浏览NPM包以找到它暴露的各种方法(在.Net中我们可以使用对象浏览器做同样的事情)?

enter image description here

3 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题。我在macOS High Sierra上使用VS Code v1.24.0。

从页面引用:https://code.visualstudio.com/docs/languages/javascript#_fixing-npm-not-installed-warning-for-automatic-type-acquisition。 VS Code使用ATA(自动类型获取)功能自动下载和管理JS的类型声明文件(* .d.ts),但它也不适用于我。

所以我发现了这个: https://github.com/DefinitelyTyped/DefinitelyTyped。我们可以使用这种命令手动下载类型声明文件:

npm install --save-dev @types/name_for_the_ package

并且您可以选择在VS代码中使用扩展名Types auto installer来帮助您在运行npm install时下载类型声明文件。也许有时Types auto installer也行不通,但你可以手动下载类型文件。

安装类型文件后,您将再次获得智能感知。

enter image description here

  

在大多数情况下,类型声明包应始终与npm上的包名称相同,但前缀为@ types /,但如果需要,可以查看http://microsoft.github.io/TypeSearch/以查找包的名称你最喜欢的图书馆。

     
    

TypeScript-Declaration Files-Consumption

  

在某些情况下,您可能需要在项目中添加jsconfig.json文件。

  

目录中存在jsconfig.json文件表明该目录是JavaScript项目的根目录。 jsconfig.json指定根文件和JavaScript语言服务提供的语言功能的选项。对于常见设置,不需要jsconfig.json文件,但是,有些情况下您需要添加jsconfig.json。

     
    

并非所有文件都应该在JavaScript项目中(例如,您希望排除某些文件显示IntelliSense)。这种情况在前端和后端代码中很常见。

         

您的工作区包含多个项目上下文。在这种情况下,您应该在每个项目的根文件夹中添加一个jsconfig.json文件。(jsconfig.json可以没有内容。)

         

您正在使用TypeScript编译器来低级编译JavaScript源代码。

  

答案 1 :(得分:0)

如果您使用的是ES6导入,则将need a jsconfig.json file插入项目的根目录。下面是一个示例配置,其中allowSyntheticDefaultImports是可能会解决您问题的重要选项。

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "allowSyntheticDefaultImports": true,
  },
  "include": [
    "src/**/*"
  ],
}

请参阅官方文档for more information

答案 2 :(得分:0)

在我的Ubuntu 18.04和:

VSC如下

版本:1.40.1 提交:8795a9889db74563ddd43eb0a897a2384129a619 日期:2019-11-13T16:49:30.162Z 电子:6.1.2 铬:76.0.3809.146 Node.js:12.4.0 V8:7.6.303.31-electron.0 操作系统:Linux x64 4.15.0-70-通用快照

认为与文档所说的相反:

Working with JavaScript

扩展名下未列出TypeScript和JavaScript语言功能

使Java代码智能完成的原因是这两个步骤:

  • 创建jsconfing.json

  • 禁用“每晚JavaScript和TypeScript”默认扩展

当然要重启VSC