tsconfig配置之files、include、exclude

1,174 阅读2分钟

0 文件目录创建

tsconfig/
├─tsconfig.json
├─src
|  └index.ts
├─main
|  └index.ts

1 files

  1. 数组类型
  2. 用于表示由 ts 管理的 文件 的具体路径,可以是相对或绝对路径。
  3. 这些文件内部有依赖的模块(或者引入了哪些模块),编译器也会搜索到依赖模块进行编译。如果某些模块并没有在项目中引入,虽然在项目目录中也不会被编译。需要注意的是,files 中不支持 glob 匹配模式的路径。

示例:

  1. 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'

image.png

  1. import 导入inner会将两者一起编译

image.png

如果项目非常小,那么我们可以使用 files指定项目的文件,否则更适合使用include指定项目文件。

2 include、exclude

  1. 数组类型,
  2. include 用于表示 ts 管理的文件。
  3. exclude用于表示 ts 排除的文件(即不被编译的文件)。 exclude默认情况下会排除node_modulesbower_componentsjspm_packagesoutDir` 目录。

其中的文件列表可以使用 glob 匹配模式列表,支持的glob通配符有:

  • * 匹配0或多个字符(不包括目录分隔符)
  • ? 匹配一个任意字符(不包括目录分隔符)
  • **/ 递归匹配任意子目录

示例:

配置文件如下:

"files": ["./src/index.ts"],
"include": ["./**/*"],
"exclude": ["./src/*"],

指定files为src下面的index.ts,include是编译所有,exclude是排除src下的文件,结果如下

image.png

注意:files定义的文件始终被编译,而include中定义的文件会被exclude排除,所以这三者的优先级是这样的:files > exclude > include

总结来说:

  1. 如果指定 files,其他设置无效,包括引用的文件
  2. 如果未指定 files,会根据include和exclude设置,如果都没有,默认项目下的所有ts文件都会被编译。
  3. 如果 files未设置,include 设置,那么除了 exclude 排除的文件,其他都会被编译
  4. 如果三者中都设置,则按照files > exclude > include

3. compileOnSave

  1. 布尔类型,
  2. 可以让 IDE 在保存文件的时候根据 tsconfig.json 重新生成编译后的文件。