tsconfig.json的目的是什么?

Bhu*_*kar 29 json typescript tsconfig angular

我正在阅读angular2推荐并找到了这个tsconfig.json.我想知道以下参数是什么意思?

{
    "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
    },
    "exclude": [
    "node_modules"
    ]
}
Run Code Online (Sandbox Code Playgroud)

Thi*_*ier 30

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

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

以下是一些提示:

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


Ham*_*yed 8

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

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

浏览器不能直接执行 TypeScript。必须使用 tsc 编译器将打字稿“转换”为 JavaScript,这需要一些配置。

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

有关更多信息https://angular.io/guide/typescript-configuration


小智 6

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

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

“ target”:“ es5” =>将es6编译为es5,以便兼容浏览器。

“ module”:“ system” =>指定模块代码的生成(commonjs,amd,system,umd,es6等)

“ moduleResolution”:“节点” =>确定如何解析模块

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

“ removeComments”:false =>删除所有注释,除了以/ *开头的版权所有者标题注释之外!

“ noImplicitAny”:false =>对隐含“ any”类型的表达式和声明引发错误。

如果指定了“排除”属性,则编译器将在包含目录和子目录中包括所有TypeScript(*。ts或* .tsx)文件,但那些文件或文件夹除外。