TS学习笔记三TS编译选项

三、TS编译选项

自动编译文件

​ 编译文件时,使用-w指令后,TS编译器会自动的监视文件的变化,并在文件变化时对文件执行重新编译

示例

tsc xxx.ts -w

一个命令编译所有文件

在目录下使用tsc --init 生成tsconfig.json文件

在生成后可以直接通过tsc命令直接编译文件目录下的所有js文件

tsc -w 命令则可以通过监听的方式,在文件变化的时候对文件执行重新编译

初始化
tsc --init
编译
tsc 
自动编译
tsc -w

“include”

用来指定哪些文件会被编译

"include": [
    "./src/**/*"
    // 表示src所有目录(**)下的所有文件(*)都会被编译
  ],

**表示任意目录

*表示任意文件

“exclude”

用来指定哪些文件/目录不被编译

默认值:["node_modules", "bower_components", "jspm_ packages"] 加上outDir选项指定的值

  // 表示不包括
  "exclude": [
    "./src/2/*"
  ],
{
  "include": [],
  "outDir": "dist"
}

“extends”

定义被继承的配置文件

 "extends": "./configs/base",

上面的代码会自动包含config目录下base.json中所有的配置信息

“files”

用来指定需要编译的文件列表(注意,只能是文件,不能是文件夹)

{
  "compilerOptions": {},
  "files": [
    "core.ts",
    "sys.ts",
    "types.ts",
    "scanner.ts",
    "parser.ts",
    "utilities.ts",
    "binder.ts",
    "checker.ts",
    "tsc.ts"
  ]
}

如果其中任意一个文件无法找到,都会抛出错误

tsconfig.json:10:5 - error TS5023: Unknown compiler option 'files'.

10     "files": ["a.ts", "c.ts"]
  

这个配置项适用于你想要指定的文件数量比较少,并且不需要使用 glob 模式匹配的情况。

“compilerOptions”

编译器选项

“target”

表示编译器编译的目标

 "target": "es5",                                
 /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */

“module”

表示指定要使用的模块化的规范

"module": "ES6",                           
/* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */

“lib”

用来指定项目中要使用的库(一般不用写)

 "lib": [],                                   
    /* Specify library files to be included in the compilation. */
'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2020.bigint', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref'.

“outDir”

用来指定编译后的文件所在的目录

    "outDir": "./dist",                              
    /* Redirect output structure to the directory. */

“outFile”

将代码合并为一个文件

设置outFile后,所有的全局作用域中的代码会合并到同一个文件中

     "outFile": "./",                             
    /* Concatenate and emit output to single file. */

“allowJs”

对js文件进行编译

"allowJs": true,                             /* Allow javascript files to be compiled. */

“checkJs”

用于检查js代码,一般和allowJS一起用

"checkJs": true,

“removeComments”

用于在编译时移除代码注释

"removeComments":true

“noEmit”

不生成编译后的文件

"noEmit":true

“noEmitOnError”

当出错时不编译文件

"noEmitOnError":true

你可能感兴趣的:(ts学习笔记,学习,typescript,javascript)