typescript.json
tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项。
初始化
TypeScript项目通过tscripttion.json来管理Typescript的对应配置,以下是生成typescript.json的过程:
安装依赖
- typescript
- NPM
- Yarn
npm install typescript -D
yarn add typescript -D
配置命令
"scripts": {
"tscInit":"tsc --init"
}
运行命令
yarn tscInit
文件结构
typescript.json # typescript.json 文件结构
├── extends # 使用 extends 继承配置
├── compileOnSave # 使用 compileOnSave 重新生成文件
├── compilerOptions # 编译器选项
│ └── allowJs
│ └── target
│ └── module
│ └── moduleResolution
│ └── strict
│ └── nolmplictAny
│ └── jsx
│ └── ……
├── files # 指定一个包含相对或绝对文件路径的列表
├── include # 指定一个文件glob匹配模式列表。 支持的glob通配符有
├── exclude # 指定一个文件glob匹配模式列表。 支持的glob通配符有
通过 extends 继承配置
tsconfig.json
文件可以利用extends
属性从另一个配置文件里继承配置。
extends
是tsconfig.json
文件里的顶级属性(与compilerOptions
,files
,include
,和exclude
一样)。 extends
的值是一个字符串,包含指向另一个要继承文件的路径。
在原文件里的配置先被加载,然后被来至继承文件里的配置重写。 如果发现循环引用,则会报错。
来自所继承配置文件的files
,include
和exclude
覆盖源配置文件的属性。
比如:
{
"compilerOptions": {
"noImplicitAny": true,
"strictNullChecks": true
}
}
{
"extends": "./configs/base",
"files": [
"main.ts",
"supplemental.ts"
]
}
通过 files 指定编译文件
file 指定一个文件glob匹配模式列表。 支持的glob通配符有
*
匹配0或多个字符(不包括目录分隔符)?
匹配一个任意字符(不包括目录分隔符)**/
递归匹配任意子目录
{
"files": [
"./index.ts"
]
}
通过 include 指定编译文件
include 指定一个文件glob匹配模式列表。 支持的glob通配符有
-
*
匹配0或多个字符(不包括目录分隔符) -
?
匹配一个任意字符(不包括目录分隔符) -
**/
递归匹配任意子目录 -
指定编译根目录下的 index.ts 文件
"include":[
"./index.ts"
] -
指定编译根目录下 src 文件夹下的所有文件
{
"include": [
"./src/**/*.ts"
],
} -
指定变异目录下 src 下所有的 ts 文件
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue"
]
通过 exclude 排除不需要编译文件
exclude 排除一个文件glob匹配模式列表。 支持的glob通配符有
-
*
匹配0或多个字符(不包括目录分隔符) -
?
匹配一个任意字符(不包括目录分隔符) -
**/
递归匹配任意子目录 -
排除根目录下的 index.ts 文件编译
"exclude":[
"./index.ts"
]