TypeScript/doc/handbook/tsconfig.json.md

88 lines
2.9 KiB
Markdown
Raw Normal View History

2015-12-06 20:07:48 +08:00
## 概述
如果一个目录下存在一个`tsconfig.json`文件那么它意味着这个目录是TypeScript项目的根目录。
`tsconfig.json`文件中指定了用来编译这个项目的根文件和编译选项。
`tsconfig.json`从TypeScript 1.5开始支持。
一个项目通过以下方式之一来编译:
## 使用tsconfig.json
* 不带任何输入文件的情况下调用`tsc`,编译器会从当前目录开始去查找`tsconfig.json`文件,依次向上搜索父级目录。
* 不带任何输入文件的情况下调用`tsc`,并且使用命令行参数`-project`(或`-p`)指定一个包含`tsconfig.json`文件的目录。
当命令行上指定了输入文件时,`tsconfig.json`文件被忽略。
## 示例
`tsconfig.json`示例文件:
* 使用`"files"`属性
```json
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"out": "../../built/local/tsc.js",
"sourceMap": true
},
"files": [
"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"
]
}
```
* 使用`"exclude"`属性
```json
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"out": "../../built/local/tsc.js",
"sourceMap": true
},
"exclude": [
"node_modules",
"wwwroot"
]
}
```
## 细节
`"compilerOptions"`可以被忽略,这时编译器会使用默认值。在这里查看完整的[编译器选项](./Compiler Options.md)列表。
如果`tsconfig.json`没有提供`"files"`属性编译器会默认包含当前目录及子目录下的所有TypeScript文件`*.ts` 或 `*.tsx`)。
如果提供了`"files"`属性值,只有指定的文件会被编译。
如果指定了`"exclude"`选项编译器会包含当前目录及子目录下的所有TypeScript文件`*.ts` 或 `*.tsx`),除了那些指定排队在外的文件和目录。
`"files"`选项不能与`"exclude"`选项同时使用。如果同时指定了两个选项的话,只有`"files"`会生效。
所有被`"files"`属性里的文件所引用的文件同样会被包含进来。
就好比,`A.ts`引用了`B.ts`,因此`B.ts`不能被排队,除非引用它的`A.ts`在`"exclude"`列表中。
`tsconfig.json`可以是个空文件,那么编译器则使用默认编译选项,编译当前目录及其子目录下的所有文件。
命令行上提供的编译选项会覆盖`tsconfig.json`文件中的对应选项。
## 模式
到这里查看模式: [http://json.schemastore.org/tsconfig](http://json.schemastore.org/tsconfig)