# `tsconfig.json` – TypeScript 编译器配置

> 原文： [https://howtodoinjava.com/typescript/tsconfig-json/](https://howtodoinjava.com/typescript/tsconfig-json/)

TypeScript 编译器使用`tsconfig.json`获取用于从 TypeScript 源代码生成 JavaScript 代码的配置选项。 使用`'$ tsc'`命令编译 TypeScript 代码时，编译器将搜索`tsconfig.json`中加载的配置。

## 创建`tsconfig.json`

在开始使用 TypeScript 之前，请确保已安装它。 为了方便使用，请将其安装为全局依赖项，以便您可以从控制台窗口使用`tsc`命令。

然后使用`'tsc --init'`命令在项目的根文件夹中创建`tsconfig.json`文件。

```java
$ npm install typescript -g 	//Install typescript

$ cd project_root		//Go to project's root folder

$ tsc --init			//Create tsconfig.json in project's root folder

```

将创建默认的`tsconfig.json`。

```java
{ 
   "compilerOptions":{ 
      "target":"es6",
      "moduleResolution":"node",
      "module":"commonjs",
      "declaration":false,
      "noLib":false,
      "emitDecoratorMetadata":true,
      "experimentalDecorators":true,
      "sourceMap":true,
      "pretty":true,
      "allowUnreachableCode":true,
      "allowUnusedLabels":true,
      "noImplicitAny":true,
      "noImplicitReturns":false,
      "noImplicitUseStrict":false,
      "outDir":"dist/",
      "baseUrl":"src/",
      "listFiles":false,
      "noEmitHelpers":true
   },
   "include":[ 
      "src/**/*"
   ],
   "exclude":[ 
      "node_modules"
   ],
   "compileOnSave":false
}

```

## 编译器选项

您必须了解一些重要的编译器选项。

| 选项 | 描述 |
| --- | --- |
| `allowJs` | 允许编译 JavaScript 文件。 默认值为`false`。 |
| `alwaysStrict` | 以严格模式解析并为每个源文件发出“`use strict`”。 默认值为`false`。 |
| `module` | 输出模块类型例如 “CommonJS”，“`AMD`”，“`System`”，“`ES6`”，“`ES2015`”或“`ESNext`”。如果`target`属性为`ES3`或`ES5`，则默认值为`CommonJS`； 否则默认为`ES6`。 |
| `target` | 指定 ECMAScript 目标版本。 默认值为`ES3`。 |
| `moduleResolution` | 确定如何解决模块。 对于`module`，键入`ES6`，`AMD`或`System` - 默认值为 `classic`； 其他`Node`。 |
| `sourceMap` | 指示是否生成源映射。 源映射有助于调试。 |
| `outDir` | 转储文件的存放位置。 |
| `baseUrl`或`paths` | 指示 TypeScript 在哪里可以找到类型文件。 |
| `watch` | 用于`livereload`。 这意味着无论何时更改任何源文件，都将重新触发编译过程以再次生成已编译的文件。 |
| `experimentalDecorators` | 此选项允许在 TypeScript 项目中使用装饰器。 ES 尚未引入装饰器，因此默认情况下将其禁用。 |

> 请遵循[官方页面](https://www.typescriptlang.org/docs/handbook/compiler-options.html)以获得编译器选项的完整列表。

## 包含和排除选项

这些选项采用一系列全局模式，这些模式需要包含在编译路径中，以便在编译过程中添加或删除文件。

```java
"include":[ 
  "src/**/*",
  "src/app/shared/**/*",
  "typings/*.d.ts"
],
"exclude":[ 
  	"node_modules",
	 "jspm_packages",
	 "application", 
	 "system",
	 "dist"
]

```

将我的问题放在评论部分。

学习愉快！