📅  最后修改于: 2021-01-11 12:56:31             🧑  作者: Mango
编译上下文是用于TypeScript文件分组的术语,它将分析和分析以确定什么是有效的,什么是无效的。编译上下文包含有关正在使用哪些编译器选项的信息。我们可以使用tsconfig.json文件定义TypeScript文件的这种逻辑分组。
我们可以使用tsc <文件名> .ts命令来编译TypeScript文件。当我们使用“ $ tsc”命令编译TypeScript代码时,编译器会搜索tsconfig.json文件中加载的配置。 TypeScript还提供了在大型项目中编译多个.ts文件的选项。
tsconfig.json文件是JSON格式的文件。在tsconfig.json文件中,我们可以指定各种选项,这些选项告诉编译器如何编译当前项目。
任何新的TypeScript项目的第一步都是添加tsconfig.json文件。要创建tsconfig.json文件,请打开要存储源文件的文件夹,然后添加一个名为tsconfig.json的新文件。
我们可以通过以下方式之一来编译一个打字稿项目:
我们可以使用以下命令在项目的根文件夹中创建tsconfig.json文件。
$ tsc --init
如果执行上述命令,将创建一个默认的tsconfig.json文件。
{
"compilerOptions": {
"declaration": true,
"emitDecoratorMetadata": false,
"experimentalDecorators": false,
"module": "none",
"moduleResolution": "node",
"noFallthroughCasesInSwitch": false,
"noImplicitAny": false,
"noImplicitReturns": false,
"removeComments": false,
"sourceMap": false,
"strictNullChecks": false,
"target": "es3"
},
"compileOnSave": true
}
包含和排除属性允许我们采用数组模式来在编译过程中添加或删除TypeScript文件列表。
{
"compilerOptions": {
"module": "system",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "../../built/local/tsc.js",
"sourceMap": true
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
我们可以通过使用editorOptions自定义编译器选项属性。它允许为打字稿编译器指定其他选项。下表总结了一些重要的编译器选项。
Option | Type | Default | Description |
---|---|---|---|
–allowJs | boolean | false | Allow JavaScript files to be compiled. |
–alwaysStrict | boolean | false | Parse in strict mode and emit “use strict” for each source file. |
–baseUrl | string | It is base directory to resolve non-directory module names. | |
–build–b | boolean | false | It is used to build a project and all of its dependencies specified by project references. |
–declaration–d | boolean | false | It generates a corresponding .d.ts file. |
–diagnostics | boolean | false | It shows diagnostic information. |
–experimentalDecorators | boolean | false | It enables the experimental support for ES decorators. |
–isolatedModules | boolean | false | It is used to transpile each file as a separate module. |
–module–m | string | target === “ES3” or “ES5” ? “CommonJS” : “ES6” | The output module type, e.g. “CommonJS”, ?AMD?, “System”, “ES6”, “ES2015” or “ESNext.” Default value is CommonJS if the target attribute is ES3 or ES5; else default is ES6. |
–moduleResolution | string | module === “AMD” or “System” or “ES6” ? “Classic” : “Node” | It determines how modules get resolved. Either “Node” for Node.js/io.js style resolution, or “Classic.” |
–noEmitOnError | boolean | false | Do not emit outputs if any errors were reported. |
–outDir | string | Redirect output structure to the directory. | |
–sourceMap | boolean | false | Generates a corresponding .map file. It helps in debugging. |
–target–t | string | “ES3” | Specify ECMAScript target version: “ES3” (default), “ES5”, “ES6″/”ES2015”, “ES2016”, “ES2017” or “ESNext”. |
–watch–w | It runs the compiler in watch mode. It means that whenever any of the source files are changed, then the compiling process is re-triggered to generate the transpiled files again. |
要查看编译器选项的完整列表,请访问官方页面。
该属性用于设置IDE来编译包含的TypeScript文件并自动生成输出。保存时,它会向IDE发出信号以生成给定tsconfig.json的所有文件。
{
"compileOnSave": true,
"compilerOptions": {
"noImplicitAny" : true
}
}