0 文件目录创建
tsconfig/
├─tsconfig.json
├─src
| └index.ts
├─main
| └index.ts
1 files
- 数组类型
- 用于表示由
ts管理的 文件 的具体路径,可以是相对或绝对路径。 - 这些文件内部有依赖的模块(或者引入了哪些模块),编译器也会搜索到依赖模块进行编译。如果某些模块并没有在项目中引入,虽然在项目目录中也不会被编译。需要注意的是,
files中不支持glob匹配模式的路径。
示例:
- files中写入
"files": \["./src/index.ts"],main中不引入inner,会单独编译
src/index.ts
export const inner = 'main'
main/index.ts
//import {inner} from '../main/index'
const outer = 'src11'
- import 导入inner会将两者一起编译
如果项目非常小,那么我们可以使用 files指定项目的文件,否则更适合使用include指定项目文件。
2 include、exclude
- 数组类型,
include用于表示ts管理的文件。exclude用于表示ts排除的文件(即不被编译的文件)。 exclude默认情况下会排除node_modules,bower_components,jspm_packages和outDir` 目录。
其中的文件列表可以使用 glob 匹配模式列表,支持的glob通配符有:
*匹配0或多个字符(不包括目录分隔符)?匹配一个任意字符(不包括目录分隔符)**/递归匹配任意子目录
示例:
配置文件如下:
"files": ["./src/index.ts"],
"include": ["./**/*"],
"exclude": ["./src/*"],
指定files为src下面的index.ts,include是编译所有,exclude是排除src下的文件,结果如下
注意:files定义的文件始终被编译,而include中定义的文件会被exclude排除,所以这三者的优先级是这样的:files > exclude > include 。
总结来说:
- 如果指定
files,其他设置无效,包括引用的文件。 - 如果未指定
files,会根据include和exclude设置,如果都没有,默认项目下的所有ts文件都会被编译。 - 如果
files未设置,include设置,那么除了exclude排除的文件,其他都会被编译 - 如果三者中都设置,则按照
files > exclude > include
3. compileOnSave
- 布尔类型,
- 可以让
IDE在保存文件的时候根据tsconfig.json重新生成编译后的文件。