关于tsconfig.json看这一篇就够了

3,848 阅读2分钟

tsconfig.json的定义

tsconfig.json 文件是 [TypeScript] 项目的配置文件,它包含了编译器的配置选项。 首先我们先了解一下tsc的一些命令

tsc --init 初始化一个tsconfig.json文件
tsc xxx.ts => 编译某一个ts文件,但是每次改写之后需要重新执行
tsc xxx.ts -w => 编译某一个ts文件, 但是会对某一个文件进行监听,自动编译

tsconfig.json的默认顶级配置

  1. files(指定一个包含相对或绝对文件路径的列表)
  2. include(通过匹配需要转换的文件)
  3. exclude(忽略include和files中需要转换的文件)
  4. compilerOptions(一个复杂的配置,详细)

tsconfig.json的常见配置

下面的配置当编译tsc命令的时候会对src下面的所有ts文件进行转义,但是会忽略comjs文件夹下的文件

  1. **/表示匹配所有子目录
  2. *代表当前文件夹下面的文件

image.png

{
    // 定义哪些文件夹下面的文件被被编译
    "include": [
      "./src/**/*"
    ],
    // 定义哪些是不被处理的
    "exclude":[
      "./src/comjs/**/*"
    ]
}

复杂配置compilerOptions

当没有配置compilerOptions时,tsc会默认使用其默认的配置
查看下面一些常见配置,其他有需要用到的时候再去查看文档

{
    "files": [
    "app.ts",
    "./src/util/1index.ts"
    ],
    // 定义哪些文件夹下面的文件被被编译
    "include": [
      "./src/**/*"
    ],
    // 定义哪些是不被处理的
    "exclude":[
      "./src/comjs/**/*"
    ],
    "compilerOptions": {
      "target": "ES6",  // 设置需要转换的es版本,
      "module": "System", // 指定使用模块化规范
      "outDir": "./dist", //指定编译后文件的输出目录
      "outFile": "System.js", // 把所有需要编译的文件打到一个文件中,这里需要和module配合,module必须要为amd或者system
      "lib": ["ES6", "DOM"],  // 指定要包含在编译中的库文件,一般来说在浏览器环境下不需要改动,在node等环境下可能改动,可选择的查看https://www.typescriptlang.org/tsconfig#lib
      "allowJs": false, // 是否对js文件进行编译, 默认false
      "checkJs": false, // 是否去检查js语法, 会给js加入ts的检查规则
      "removeComments": false, // 在转换的过程中是否移除注释
      "noEmit": false, //不生成编译文件
      "noEmitOnError": false, //当有错误的时候不编译生成文件
      "alwaysStrict": true, //使用编译后是严格模式
      "noImplicitAny": false, //不允许隐的any
      "noImplicitThis": false, // 不允许不明确的this使用 
      "strictNullChecks": false, //严格检查null值
      "strict": false, // 严格检查的总开关
    }
}