📜  TypeScript编译上下文| tsconfig.json

📅  最后修改于: 2021-01-11 12:56:31             🧑  作者: Mango

打字稿编译上下文

编译上下文是用于TypeScript文件分组的术语,它将分析和分析以确定什么是有效的,什么是无效的。编译上下文包含有关正在使用哪些编译器选项的信息。我们可以使用tsconfig.json文件定义TypeScript文件的这种逻辑分组。

我们可以使用tsc <文件名> .ts命令来编译TypeScript文件。当我们使用“ $ tsc”命令编译TypeScript代码时,编译器会搜索tsconfig.json文件中加载的配置。 TypeScript还提供了在大型项目中编译多个.ts文件的选项。

tsconfig.json

tsconfig.json文件是JSON格式的文件。在tsconfig.json文件中,我们可以指定各种选项,这些选项告诉编译器如何编译当前项目。

任何新的TypeScript项目的第一步都是添加tsconfig.json文件。要创建tsconfig.json文件,请打开要存储源文件的文件夹,然后添加一个名为tsconfig.json的新文件。

我们可以通过以下方式之一来编译一个打字稿项目:

  • 通过不使用任何输入文件的情况下调用tsc:在这种情况下,编译器从父目录链之后的当前目录开始搜索tsconfig.json文件。
  • 通过不使用任何输入文件和–project(或仅使用-p)命令调用tsc:在这种情况下,编译器指定包含tsconfig.json文件的目录的路径。它还指定包含配置的有效.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属性

我们可以通过使用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.

要查看编译器选项的完整列表,请访问官方页面

compileOnSave

该属性用于设置IDE来编译包含的TypeScript文件并自动生成输出。保存时,它会向IDE发出信号以生成给定tsconfig.json的所有文件。

{
   "compileOnSave": true,
   "compilerOptions": {
       "noImplicitAny" : true
   }
}