tsconfig.json的用途是什么



我在阅读Angular2参考文献时发现:tsconfig.json。我想知道以下参数是什么意思?

{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}

tsconfig.json文件对应于TypeScript编译器(tsc)的配置。

这些链接可以为您提供有关这些属性的详细信息:

  • http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
  • http://json.schemastore.org/tsconfig
  • https://angular.io/docs/ts/latest/guide/typescript-configuration.html##tsconfig

这里有一些提示:

  • target:用于编译输出的语言
  • module:编译输出中使用的模块管理器。system代表SystemJS,commonjs代表CommonJS
  • 模块解析:用于解析模块声明文件(.d.ts文件)的策略。对于node方法,它们像模块(require('module-name'))一样从node_modules文件夹加载
  • sourceMap:生成或不生成源映射文件,以便在浏览器中直接调试应用程序TypeScript文件
  • emitDecoratorMetadata:为源中的装饰声明发出或不发出设计类型元数据
  • 实验装饰器:启用或不启用对ES7装饰器的实验支持
  • removeComments:是否删除评论
  • noImplicitAny:允许或不允许使用没有类型的变量/参数(隐式)

tsconfig.json表示保存它的目录是TypeScript项目的根目录。tsconfig.json文件指定编译项目所需的根文件和编译器选项。

编译器应按照上述配置执行:

"target":"es5">=>将编译es6到es5,使其成为兼容的浏览器。

"module":"system">=>指定模块代码生成(commonjs'、'amd'、'system'、'umd'、'es6'等)

"模块解析":"节点">=>确定模块如何解析

"sourceMap":true=>生成相应的".map"文件,以便在生产代码中使用该文件进行调试。

"removeComments":false=>删除除以/*开头的复制右侧标题注释外的所有注释!

"noImplicitAny":false=>在具有隐含"any"类型的表达式和声明上引发错误。

如果指定了"exclude"属性,则编译器将包含包含目录和子目录中的所有TypeScript(*.ts或*.tsx)文件,但被排除的文件或文件夹除外。

已经有很多答案了,但我想再补充一点,说明为什么需要tsconfig。根据角度文件

TypeScript是Angular应用程序开发的主要语言。它是JavaScript的超集,在设计时支持类型安全和工具。

浏览器无法直接执行TypeScript。Typescript必须是使用tsc编译器"transpiled"到JavaScript,这需要一些配置。

通常,您会在项目中添加一个名为tsconfig.json的TypeScript配置文件,以指导编译器生成JavaScript文件。

有关详细信息https://angular.io/guide/typescript-configuration

tsconfig文件将该项目指示为typescript项目,它包括如何编译typescript文件的选项。有关详细信息,请查看网站https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

以上介绍了大部分要点。有些遗漏了,我想强调一下。

tsconfig.json将告诉哪里是构建代码以及目标版本。

例如,当它进入生产时,它将引用tsconfig.json中的以下键并选择构建。

"outDir": "./dist/out-tsc", --> where to locate the build file. 

我们的浏览器不理解typescript,所以请说明要转换哪种类型的js,浏览器会理解我们的代码。

换句话说,我们用typescript编写代码,但将代码带到es5,我们使用下面的字段来完成。

"target": "es2015",

正如您所知,浏览器只能接受javascript文件,但当您使用angular时,就不会使用javascript。而是使用typescript文件。。因此,现在我们需要一种方法来将这些typescript文件更改为js文件。它是由tsconfig.json文件完成的,该文件指定了进行此更改所需的配置选项。例如编译器选项和根文件。

相关内容

  • 没有找到相关文章

最新更新