,,tsconfig.json配置详解

,,tsconfig.json配置详解

本文主要介绍tsconfig.json的详细配置,用来编译这个项目的根文件和编译选项都是在tsconfig.json文件中指定的。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

概述

如果一个目录下有tsconfig.json文件,说明这个目录是TypeScript项目的根目录。tsconfig.json文件指定用于编译该项目的根文件和编译选项。项目可以通过以下方式之一进行编译:

使用tsconfig.json

在没有任何输入文件的情况下调用tsc时,编译器会从当前目录中搜索tsconfig.json文件,并逐步搜索父目录。

在没有任何输入文件的情况下调用tsc,并使用命令行参数- project(或-p)来指定包含tsconfig.json文件的目录。

当在命令行上指定输入文件时,tsconfig.json文件将被忽略。

示例

Tsconfig.json示例文件:

使用“文件”属性

{

编译器选项':{

模块':' commonjs ',

' noImplicitAny ':真,

' removeComments': true,

' preserveConstEnums ':真,

' sourceMap': true

},

文件':[

' core.ts ',

'系统',

'类型. ts ',

scanner.ts ',

parser.ts ',

utilities.ts ',

binder.ts ',

checker.ts ',

发射器. ts ',

'程序. ts ',

' commandLineParser.ts ',

tsc.ts ',

'诊断信息Map.generated.ts '

]

}

使用“include”和“exclude”属性。

{

编译器选项':{

模块':'系统',

' noImplicitAny ':真,

' removeComments': true,

' preserveConstEnums ':真,

输出文件': '././build/local/TSC . js ',

' sourceMap': true

},

包括':[

src/**/* '

],

排除':[

'节点模块',

**/* .规格ts '

]

}

细节

“CompilerOptions”可以忽略,那么编译器将使用默认值。点击这里查看编译器选项的完整列表。

“文件”指定包含相对或绝对文件路径的列表。“Include”和“exclude”属性指定文件全局匹配模式的列表。支持的全局通配符有:

*匹配0个或更多字符(不包括目录分隔符)

?匹配任意字符(不包括目录分隔符)

* */递归匹配任何子目录

如果glob模式的一部分只包含*或。*,则只包括支持的文件扩展名类型(如default。ts,tsx,还有。d.ts .还有。js和。如果allowJs设置为true,则为jsx)。

如果未指定“files”和“include ”,编译器将包含所有类型脚本文件(。ts,d.ts和。默认情况下,tsx)位于当前目录和子目录中,不包括“exclude”中指定的文件。JS文件(。js和。如果allowJs设置为true,也包括jsx)。如果指定了“files”或“include ”,编译器会将它们包含在一起。编译器将始终排除由“outDir”指定的目录中的文件,除非您显式使用“files”来包含它们(在这种情况下,使用exclude指定是没有用的)。

用“include”引入的文件可以用“exclude”属性过滤。但是,无论如何设置“排除”,由“文件”属性明确指定的文件将始终包括在内。除非另有说明,否则默认情况下,“排除”将排除node_modules、bower_components、jspm_packages和outDir目录。

由“files”或“include”指定的文件引用的任何文件也将包括在内。A.ts引用B.ts,因此B.ts不能被排除,除非引用它的A.ts在“排除”列表中。

请注意,编译器不会引入可能用作输出的文件;例如,假设我们包括index.ts,那么index.d.ts和index.js将被排除。一般来说,不建议仅通过扩展名的不同来区分同一目录下的文件。

Tsconfig.json文件可以是一个空文件,那么所有默认文件(如上所述)都将使用默认配置选项进行编译。

命令行上指定的编译选项会覆盖tsconfig.json文件中的相应选项。

@types,typeRoots和types

所有默认可见的“@types”包都将包含在编译过程中。node_modules/@types文件夹及其子文件夹下的所有包都是可见的;也就是,/node_modules/@types/,/node_modules/@types/和././node_modules/@types/等等。

如果指定了typeRoots,则只包括typeRoots下的包。例如:

{

编译器选项':{

typeroot“:[”。/typings']

}

}

这个配置文件将包含下的所有包。/typongs,但不是里面的包。/node _ modules/@类型。

如果指定了types,将只包含列出的包。例如:

{

编译器选项':{

类型':['node ',' lodash ',' express']

}

}

这个tsconfig.json文件将只包含。/node_modules/@types/node,/node_modules/@types/lodash和。/node_modules/@types/express。/@types/.node_modules/@types/*中的其他包就不介绍了。

指定“types”:[]以禁用@types包的自动引入。

请注意,只有在使用全局声明(与模块相反)时,自动引入才是重要的。如果使用import 'foo '语句,TypeScript仍将查找node_modules和node_modules/@types文件夹以获取foo包。

使用extends继承配置

Tsconfig.json文件可以通过使用extends属性从另一个配置文件继承配置。

Extends是tsconfig.json文件中的顶级属性(类似于compilerOptions、files、include和exclude)。extends的值是一个字符串,包含要继承的另一个文件的路径。

原始文件中的配置首先被加载,然后被继承文件中的配置重写。如果发现循环引用,将会报告错误。

继承的配置文件中的文件include和exclude会覆盖源配置文件的属性。

配置文件中的相对路径相对于解析时它所在的文件。

例如:

配置/base.json:

{

编译器选项':{

' noImplicitAny ':真,

' strictNullChecks': true

}

}

tsconfig.json:

{

扩展“:”。/configs/base ',

文件':[

' main.ts ',

补充. ts '

]

}

tsconfig.nostrictnull.json:

{

扩展“:”。/tsconfig ',

编译器选项':{

“strictNullChecks”:false

}

}

compileOnSave

在顶层设置compileOnSave标志允许IDE在保存文件时根据tsconfig.json重新生成文件。

{

' compileOnSave': true,

编译器选项':{

' noImplicitAny ':对

}

}

要支持此功能,您需要安装Visual Studio 2015、TypeScript1.8.4或更高版本以及atom-typescript插件。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • js把字符串转为json,json字符串转换成json对象
  • js把字符串转为json,json字符串转换成json对象,js 将json字符串转换为json对象的方法解析
  • json语法格式,json格式定义
  • json语法格式,json格式定义,Json格式详解
  • json格式数据类型,什么是JSON数据-其常见格式是什么-
  • json格式数据类型,什么是JSON数据-其常见格式是什么-,JSON 数据格式详解
  • json格式怎么写,json文件内容格式
  • json格式怎么写,json文件内容格式,json文件书写格式详解
  • json数组对象转化为json字符串,js把数组转化为json
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法,JSON对象转化为字符串详解
  • json基础介绍与详细用法教程,json基础知识
  • json基础介绍与详细用法教程,json基础知识,JSON基础介绍与详细用法
  • json去掉反斜杠,json字符串中有反斜杠
  • json去掉反斜杠,json字符串中有反斜杠,详解json串反转义(消除反斜杠)
  • 留言与评论(共有 条评论)
       
    验证码: