概览
当目录中出现了 tsconfig.json 文件,则说明该目录是 TypeScript 项目的根目录。tsconfig.json 文件指定了编译项目所需的根目录下的文件以及编译选项。
JavaScript 项目可以使用 jsconfig.json 文件,它的作用与 tsconfig.json 基本相同,只是默认启用了一些 JavaScript 相关的编译选项。
一个项目将以下列之一的方式编译:
使用 tsconfig.json 或者 jsconfig.json
-
在调用 tsc 命令并且没有其它输入文件参数时,编译器将由当前目录开始向父级目录寻找包含 tsconfig 文件的目录。
-
调用 tsc 命令并且没有其他输入文件参数,可以使用
--project(或者只是-p)的命令行选项来指定包含了tsconfig.json的目录,或者包含有效配置的.json文件路径。
当命令行中指定了输入文件参数, tsconfig.json 文件会被忽略。
示例
tsconfig.json 文件示例:
-
使用
files属性{"": {"": "commonjs","": true,"": true,"": true,"": true},"": ["core.ts","sys.ts","types.ts","scanner.ts","parser.ts","utilities.ts","binder.ts","checker.ts","emitter.ts","program.ts","commandLineParser.ts","tsc.ts","diagnosticInformationMap.generated.ts"]} -
使用
"include"和"exclude"属性{"": {"": "system","": true,"": true,"": true,"": "../../built/local/tsc.js","": true},"": ["src/**/*"],"": ["node_modules", "**/*.spec.ts"]}
基本的 TSConfig
根据你要在其中运行代码的不同的 JavaScript 运行时环境,你可以在 github.com/tsconfig/bases 上寻找一个合适的基本配置。
你可以通过扩展这些已经处理过不同的 JavaScript 运行时环境的 tsconfig.json 文件来简化你项目中的 tsconfig.json。
举个例子,如果你的项目是基于 Node.js 12.x 写的,那么你可以使用 npm 模块:@tsconfig/node12:
{"": "@tsconfig/node12/tsconfig.json","": {"": true},"": ["src/**/*"],"": ["node_modules", "**/*.spec.ts"]}
这使你的 tsconfig.json 专注在你的项目的目标环境上,而不是所有可能的运行时环境。现在已经有了一些 tsconfig 基础配置,我们希望社区能够为不同的环境添加更多的内容。
细节
当没有指定 "compilerOptions" 时,会使用编译器的默认配置。请参考我们支持的编译器选项列表。
TSConfig 参考
想要了解更多的配置选项的信息,请访问 TSConfig Reference。
协议
tsconfig.json 的协议可以在这里找到 the JSON Schema Store。