【问题标题】:Visual Studio Code Intellisense not working for NPM packageVisual Studio Code Intellisense 不适用于 NPM 包
【发布时间】:2019-11-20 22:38:05
【问题描述】:

我在 Windows 上使用 Visual Studio Code 1.20.0。我的智能感知无法正常工作,例如:Visual Studio 代码无法检测到 youtubedl 包具有 getinfo 方法。社区是否会对我需要做些什么来让智能感知正常工作有意见?如果没有,我如何浏览 NPM 包以找到它公开的各种方法(在 .Net 中,我们可以使用对象资源管理器来做同样的事情)?

【问题讨论】:

  • 我遇到了同样的问题,创建 jsconfig.json 文件没有帮助。根据一些文档,我发现,我可以看到来自 githib 存储库的 TypeScript 和 JavaScript 语言功能与 Visual Studio Code(或应该)捆绑在一起

标签: visual-studio-code


【解决方案1】:

如果您使用 ES6 导入,您将在项目的根目录中添加 need a jsconfig.json file。

下面是一个示例配置,allowSyntheticDefaultImports 是 likely solve your problem 的重要选项。

之后别忘了重启 VSCode。

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

【讨论】:

  • 即使添加了 jsconfig.json 我仍然有问题
  • 不知何故在关闭和打开 Typescript 几次后它开始工作,所以我想知道是缺少这个 jsconfig.json
  • 令人失望的是这不是默认行为。如果您使用的是 typescript,您还需要在 tsconfig.json 文件中添加不同的代码 sn-p。
  • 我在这个问题上花了无数个小时,这对我有用!
【解决方案2】:

我也遇到了同样的问题。我在 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 Code 中的扩展名Types auto installer 来帮助你在运行npm install 时下载类型声明文件。也许有时Types auto installer 也不起作用,但无论如何您都可以手动下载类型文件。

安装完类型文件后,你会再次获得智能感知。

在大多数情况下,类型声明包的名称应始终与 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 源代码进行下级编译。

【讨论】:

    【解决方案3】:

    就我而言,在 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-电子.0 操作系统:Linux x64 4.15.0-70-generic snap

    考虑到与文档所说的相反:

    Working with JavaScript

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

    实现 Javascript 智能代码完成的原因在于这两个相互依赖的步骤:

    • 创建 jsconfing.json

    • 禁用“JavaScript and TypeScript Nightly”默认扩展

    当然要重启VSC

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 2016-07-14
      • 1970-01-01
      • 2022-01-21
      • 2016-07-21
      • 2019-01-25
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多