jsconfig.json

656 阅读2分钟

一、什么是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"]
}