0
点赞
收藏
分享

微信扫一扫

Typescript配置管理


文章目录

  • ​​编译程序​​
  • ​​--watch和-w​​
  • ​​工程引用​​
  • ​​build构建模式​​
  • ​​solution模式​​


Typescript的编译器是能够对Typescript代码和JavaScript代码进行静态类型检查,并且把Typescript代码转化为JavaScript代码。

Typescript编译器程序位于Typescript语言安装目录下的lib文件夹中。

Typescript编译器对外提供了一个命令行工具,用来编译Typescript代码,即​​tsc​​命令。

编译器的安装,只需要安装Typescript即可,命令:​​npm install -g typescript​​,安装结束后,就可以查看Typescript的版本等等信息。

编译程序

先创建一个Typescript文件,index.ts:

export function add(x: number, y:) {
return x + y;
}

编译文件:​​tsc index.ts​​,然后生成index.js:

"use strict";
exports.__esModule = true;
exports.add = void 0;
function add(x,) {
return x + y;
}
exports.add = add;

–watch和-w

Typescript提供了一种特殊的编译模式,就是观察模式,编译器会监听文件的修改并且自动重新编译文件。

观察模式通过​​--watch​​​或者是​​-w​​来启动,也就是在编译命令后添加–watch或者-w。如下图所示,就是启动观察模式后终端显示的结果:

Typescript配置管理_typescript

启用​​--strict​​编译选项是所有严格类型检查编译选项的总开关,包含了:

--strictNullChecks
--strictFunctionTypes
--strictBindCallApply
--strictPropertyInitialization
--noImplicitThis
--alwaysStrict

有很多的编译选项直接在tsconfig中设置即可,不用每次都需要输入对应的选项。

工程引用

在工程规模扩大之后,为了解决性能的问题,我们通常会把工程分为多个独立的子工程,最后再将所有子工程关联在一起。

在含有的tsconfig.json配置文件的目录作为工程的根目录,需要在tsconfig.json配置文件中做一些配置,比如:

  1. 使用"references"属性配置当前工程引用的其他工程。
  2. 被引用的工程必须启动composite编译选项。

references属性值是一个对象数组,用来设置引入的工程,比如:

"references": [{
"path": "../pack"
}]

composite编译选项的值是一个布尔值,composite选项的设置,编译器才能快速定位到依赖工程的输出文件位置,所以一个工程如果被其他工程引用,在该工程的composite编译选项必须设置为true。

比如现在有一个项目是由两个工程组成的:pack和pack1。

整体的项目目录如下:

Typescript配置管理_前端_02


工程pack1有一个模块是从工程pack中引入的,那就pack1工程依赖于pack中的模块:

在工程pack的tsconfig.json配置文件中设置:

{
"compilerOptions": {
"target": "ES2015",
"strict": true,
"composite": true,
},

}

主要是​​ "composite": true,​

工程pack1的tsconfig.json配置文件中的配置:

{
"references": [{
"path": "../pack"
}]
}

build构建模式

build构建模式是配合工程引用的使用,编译器能够增量构建,命令:​​tsc --build​​。

执行该命令后,编译器会执行一些操作:

  1. 查找当前工程所引用的子工程
  2. 检查当前工程和引用工程是否有更新
  3. 如果有更新,就会根据依赖顺序重新构建

这是编译后生成的文件:

Typescript配置管理_编译器_03


其中在工程pack中生成的文件tsconfig.tsbuildinfo,它保存了该工程这次构建的详细信息,而编译器也是通过查看这个文件来决定是否重新编译。

build模式也有一些编译选项的:

  1. –verbose,打印构建的详细日志信息
  2. –dry,打印将执行的操作,但是不进行真正的构建
  3. –clean,删除工程中编译输出的文件
  4. –force,强制重新编译工程
  5. –watch,观察模式

solution模式

如果一个项目是由多个工程组成的,我们可以创建一个solution工程来管理这些子工程。

solution工程不包含任何实际代码,它只是引用项目中所有的工程并且将它们关联在一起。

项目的根目录的tsconfig.json中设置solution如下:

{
"files": [],
"include": [],
"references": [
{
"path": "pack"
},
{
"path": "pack1"
}
]
}

然后在根目录下执行命令:​​tsc --build --verbose​​,这就可以同时编译pack和pack1了。

这就是Typescript的基本配置,当然配置也是随着版本的不同而不同,所以在进行配置的时候,要根据自己的版本来进行对应的配置。


举报

相关推荐

0 条评论