◆

tsconfig include、exclude 与 files 详解

2023-02-02 01:370

include 作用

指定需要编译处理的文件列表,支持 glob 模式匹配,文件的解析路径相对于当前项目的 tsconfig.json 文件位置

匹配规则

  • *:匹配零个或者多个字符(包括目录的分隔符)
  • ?:匹配任一字符(包括目录分隔符)
  • **/:匹配任何层级的嵌套目录

如果没有明确指定文件扩展名。那么默认情况下仅会包含 .ts、.tsx 和 .d.ts 类型的文件。但是如果 allowJs 选项被设置成了 true,那么 .js 和 .jsx 文件也会被包含其中

示例

当我们的目录结构如下

tsconfig之include和exclude详解
  1. include 配置为 src 或者 src/ 时,src 下的所有文件都会经过 ts 的编译
  2. include 配置为 src/* 时,src 下第一层级的子文件会经过 ts 的编译
  3. include 配置为 src/*.js 时,src 下第一层级的子文件以 .js 结尾的会经过 ts 的编译
  4. include 配置为 src/**/* 时,src 下的所有文件都会经过 ts 的编译,目录层级不限
  5. include 配置为 src/**/*.js 时,src 下以 .js 结尾的会经过 ts 的编译,并且在其对应的目录下面,目录层级不限
  6. include 配置为 **/* 时,包含当前项目中所有文件

exclude 作用

用于指定当解析 include 选项时,需要忽略的文件列表

  • exclude 的默认值是 ["node_modules", "bower_components", "jspm_packages"] 加上 outDir 选项指定的值
  • exclude 配置为 ["src/*.ts"] 代表忽略当前 src 下第一层级的 ts 文件
  • 任何被 files 或 include 指定的文件所引用的文件也会被包含进来,A.ts 引用了 B.ts,因此 B.ts 不能被排除,除非引用它的 A.ts 在 exclude 列表中。

files 作用

用来指定需要编译的文件列表(注意,只能是文件,不能是文件夹)

  • 如果其中任意一个文件无法找到,都会抛出错误
  • 通过 files 属性明确指定的文件却总是会被包含在内,不管 exclude 如何设置
  • 这个配置项适用于你想要指定的文件数量比较少,并且不需要使用 glob 模式匹配的情况。否则,请使用 include 配置项
💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVEtsconfig include、exclude 与 files 详解加载中