目录
一、自动编译文件
二、自动编译整个项目
三、配置选项
include
exclude
extends
files
compilerOptions
一、自动编译文件
- 编译文件时,使用-w指令后,TS编译器会自动监视文件的变化,并在文件发生变化时对文件进行重新编译。
// 指令
tsc xxx.ts -w // 修改后自动更新js文件
二、自动编译整个项目
- 如果直接使用tsc命令,则可以自动将当前项目下的所有ts文件编译为js文件;
- 但是前提是在项目根目录下创建一个ts的配置文件tsconfig.json;
- tsconfig.json是一个json文件,添加文件后,只需要tsc命令即可完成对整个项目的编译。
三、配置选项
include
// 用来指定哪些ts文件需要被编译
// 默认值:["**/*"]
// 路径:** 表示任意目录;* 表示任意文件
"include": [
"./src/**/*",
"tests/**/*"
]
exclude
// 定义需要排除在外的目录
// 默认值:[“node_modules”, “bower_components”, “jspm_packages”]
"exclude": ["./src/hello/**/*"]
// 上述示例中,src下hello目录下的文件都不会被编译
extends
// 定义被继承的配置文件
"extends": "./configs/base"
// 上述示例中,当前配置文件中会自动包含config目录下base.json中的所有配置信息
files
// 指定被编译文件的列表,只有需要编译的文件少时才会用到
"files": [
"core.ts",
"sys.ts",
"types.ts",
"scanner.ts",
"parser.ts",
]
// 列表中的文件都会被TS编译器所编译
compilerOptions
"compilerOptions": {
// target 用来指定ts被编译为的es版本
// es3, es5, es6, es2015, es2016, es2017, es2018, es2019, es2020,
"target": "es6",
// module 指定要使用的模块化的规范
// none, commonjs, amd, system, umd, es6, es2015, es2020, esnext
"module": "esnext",
// lib 指定项目中要使用的库
// 过多,在此省略。。。
"lib": [
"dom",
"dom.iterable",
"ESNext"
],
// 以下默认值一般都为 false----------------------
// removeComments 是否移除注释
"removeComments": true,
// allowJs 是否对js文件进行编译,默认false
"allowJs": false,
// noEmit 不生成编译后产生的文件
"noEmit": true,
// outDir 用来指定编译后文件所在的目录
"outDir": "./dist",
// outFile 将代码合并为一个文件
"outFile": "./dist.app.js",
// checkJs 是否检查js代码是否符合语法规范,默认false
"checkJs": true,
// noEmitOnError 当有错误时不生成编译后产生的文件
"noEmitOnError": true,
// 语法检查:-----------------------------------
// 所有严格模式的总开关
"strict": true,
// 用来设置编译后的文件是否使用严格模式
"alwaysStrict": true,
// 不允许隐式的 any 类型
"noImplicitAny": true,
// 不允许不明确类型的 this
"noImplicitThis": true,
// 严格的检查空值
"strictNullChecks": true,
}