tsconfig.json – TypeScript 编译器配置

tsconfig.json – TypeScript 编译器配置

原文: https://howtodoinjava.com/typescript/tsconfig-json/

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

创建tsconfig.json

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

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

$ 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

{ 
   "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属性为ES3ES5,则默认值为CommonJS; 否则默认为ES6
target 指定 ECMAScript 目标版本。 默认值为ES3
moduleResolution 确定如何解决模块。 对于module,键入ES6AMDSystem - 默认值为 classic; 其他Node
sourceMap 指示是否生成源映射。 源映射有助于调试。
outDir 转储文件的存放位置。
baseUrlpaths 指示 TypeScript 在哪里可以找到类型文件。
watch 用于livereload。 这意味着无论何时更改任何源文件,都将重新触发编译过程以再次生成已编译的文件。
experimentalDecorators 此选项允许在 TypeScript 项目中使用装饰器。 ES 尚未引入装饰器,因此默认情况下将其禁用。

请遵循官方页面以获得编译器选项的完整列表。

包含和排除选项

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

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

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

学习愉快!