一, 自动编译文件
- 编译文件时,使用-w指令后, ts编译器会自动监视文件的变化,并在文件发生改变时进行重新编译
tsc XXX.ts -w
二, 自动编译整个项目
- 如果直接使用tsc指令,则可以自动将当前项目下得所有ts文件编译为js文件
- 但是能直接使用tsc命令的前提是,要先在项目根目录下创建一个ts的配置文件tsconfig.json
- tsconfig.json是一个JSON文件,添加配置文件后,只需tsc命令即可完成对整个项目的编译
配置选项如下:
include:用来指定哪些ts文件需要被编译
路径: ** 表示任意目录
* 表示任意文件
示例:
"include":[
"./src/**/*"
],
exclude:表示不需要被编译的文件目录
示例:
// "exclude":[
// "./src/hello.ts"
// ]
"compilerOptions":编译器的选项
"target": "ES6", //用来指定ts被编译的ES版本
"module": "ES6", //指定要使用的模块化规范
"lib": [] //用来指定项目中要使用的库
"outDir":"./dist", //用来指定编译后文件所在目录
"outFile":"./dist/app.js", //将代码合并为一个文件,设置outFile后,所有的全局作用域中的代码将会合并到同一个文件中
"allowJs": false, //是否对js文件进行编译,默认为false
“checkJs”:false, //是否检查js代码是否符合语法规范, 默认为FALSE
“removeComments”:false, //是否移除注释
"noEmit":true,//不生成编译后的文件
“noEmitOnError”:true,//当有错误时不生成编译后的文件
"strict":true, //所有严格检查的总开关
"alwaysStrict":false, //用来设置编译后的文件是否使用严格模式, 默认为FALSE
"noImplicitAny":true, //不允许隐式的any
"noImplicitThis":true, //不允许不明确类型的this
"strictNullChecks":true, //严格的检查null值
tsconfig.json如下:
{
/*
tsconfig.json是ts编译器的配置文件,ts编译器可以根据它的信息来对代码进行编译
"include"用来指定哪些ts文件需要被编译
路径: ** 表示任意目录
* 表示任意文件
"exclude" 不需要被编译的文件目录
extends,
file
*/
"include":[
"./src/**/*"
],
// "exclude":[
// "./src/hello.ts"
// ]
/*
"compilerOptions":编译器的选项
*/
"compilerOptions": {
// 用来指定ts被编译的es版本
"target": "ES6",
// module 指定要使用的模块化规范
"module": "ES6",
// lib用来指定项目中要使用的库
// "lib": []
// outDir 用来指定编译后文件所在的目录
"outDir":"./dist",
// "outFile" 将代码合并为一个文件 设置outFile后,所有的全局作用域中的代码会合并到同一个文件中
// "outFile":"./dist/app.js",
// 是否对js文件进行编译, 默认是FALSE
"allowJs": false,
// 是否检查js代码是否符合语法规范, 默认是FALSE
"checkJs":false,
// 是否移除注释
"removeComments":false,
// 不生成编译后的文件
// "noEmit":true
// 当有错误时不生成编译后的文件
"noEmitOnError":true,
// 所有严格检查的总开关
"strict":true,
// alwaysStrict 用来设置编译后的文件是否使用严格模式, 默认为FALSE
"alwaysStrict":false,
// noImplicitAny 类型 不允许隐式的any类型
"noImplicitAny":true,
// 不允许不明确类型的this
"noImplicitThis":true,
// 严格的检查null值
"strictNullChecks":true,
}
}