一、什么是jsconfig.json
目录中存在jsconfig.json文件表示该目录是JavaScript项目的根目录。jsconfig.json文件指定根文件和JavaScript语言服务提供的功能选项。
如果您不使用JavaScript,则无需担心jsconfig.json。jsconfig.json源于tsconfig.json,是TypeScript的配置文件。jsconfig.json相当于tsconfig.json的“allowJs”属性设置为true。
二、为什么需要一个jsconfig.json文件
Visual Studio Code的JavaScript支持可以在两种不同的模式下运行:
文件范围 - 没有jsconfig.json:在此模式下,在Visual Studio Code中打开的JavaScript文件被视为独立单元。 只要文件a.js没有显式引用文件b.ts(使用///引用指令或CommonJS模块),两个文件之间就没有共同的项目上下文。 显式项目 - 使用jsconfig.json:JavaScript项目是通过jsconfig.json文件定义的。 目录中存在此类文件表示该目录是JavaScript项目的根目录。 文件本身可以选择列出属于项目的文件,要从项目中排除的文件,以及编译器选项(见下文)。
当您在工作空间中有一个定义项目上下文的jsconfig.json文件时,JavaScript体验会得到改进。 因此,当您在新工作空间中打开JavaScript文件时,我们提供了一个创建jsconfig.json文件的提示。
三、jsconfig选项
选项 | 描述
noLib 不包括默认库文件(lib.d.ts)
target 指定要使用的默认库(lib.d.ts)。值: es3, es5, es6,es2015,es2016, es2017, es2018, es2019,es2020,esnext
module 生成模块代码时指定模块系统。值: amd, commonJS, es2015, es6, esnext, none, system, umd moduleResolution 指定如何解析模块以进行导入。值:node,classic
checkJs 对JavaScript文件启用类型检查。
experimentalDecorators 为建议的ES装饰器提供实验支持。
allowSyntheticDefaultImports 允许从模块进行 default import 而没有 default export 。这不影响代码发出,仅影响类型检查。 只起到检查的作用,不会对编译后的代码有任何影响
baseUrl 基本目录,用于解析非相对模块名称。
paths 指定要相对于baseUrl选项计算的路径映射。
四、jsconfig配置
{
"compilerOptions": {
"target": "es2017",
"allowSyntheticDefaultImports": false,
"baseUrl": "./",
"paths": {
"@/*": ["src/*"] // 在webpack中@代表src路径
}
},
"exclude": ["node_modules", "dist"]
}