我在Windows上使用Visual Studio Code 1.20.0。我的intellisense工作不正常,例如:visual studio代码无法检测到youtubedl包有getinfo方法。社区是否会对我需要做些什么才能让intellisense正常工作?如果没有,我如何浏览NPM包以找到它暴露的各种方法(在.Net中我们可以使用对象浏览器做同样的事情)?
答案 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
也行不通,但你可以手动下载类型文件。
安装类型文件后,您将再次获得智能感知。
在大多数情况下,类型声明包应始终与npm上的包名称相同,但前缀为@ types /,但如果需要,可以查看http://microsoft.github.io/TypeSearch/以查找包的名称你最喜欢的图书馆。
在某些情况下,您可能需要在项目中添加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-通用快照
认为与文档所说的相反:
扩展名下未列出TypeScript和JavaScript语言功能
使Java代码智能完成的原因是这两个步骤:
创建jsconfing.json
禁用“每晚JavaScript和TypeScript”默认扩展
当然要重启VSC