Open rankangkang opened 8 months ago
当你的 ts 项目 A 依赖另一个 ts 项目 B 时,如果你需要对项目 A 进项调试或打包,name你必须先编译 B。在没有“魔法”情况下,我们只能手动的做这件事。
对此,ts 提供了 referrence
(依赖项目设置) 与 composite
(被依赖项目设置)配置来解决依赖编译的问题。
// project A tsconfig.json
{
// ...
"references": [
{ "path": "path/to/project/B/tsconfig.json" },
],
}
// project B tsconfig.json
{
"compilerOptions": {
// ...
"composite": true, // 使用references 字段引入的配置文件需要设置 composite: true
},
}
然后在编译时 A 时增加 --build
选项,在 A 编译的同时,B 也会被编译
参见 utility-types: https://github.com/piotrwitek/utility-types
使用 ts 开发就免不了要接触 tsconfig 配置,如果你在 github 上面 clone 一个 ts 项目到本地或是自己创建一个,安装之后点击打开 tsconfig.json 大概率会看到首行飘红。(别问,问就是 experience)。
1、tsconfig.json 作用
2、tsconfig.json 重要字段
files - 设置要编译的文件名称。只能指定文件,不能指定文件夹
include - 设置需要进行编译的文件或目录,支持路径匹配模式。如果指定了
files
选项值,则includes
的默认值为[]
,否则默认包含当前项目中所有文件["**/*"]
exclude - 设置无需进行编译的文件,支持路径模式匹配
以上,详情见:TSConfig 之 include、exclude 和 files 选项 - 掘金 (juejin.cn)
extends - 引入其他配置文件,继承其配置
compilerOptions - 设置与编译流程相关的选项
compilerOptions 选项详细说明如下:
3、注意事项
tsc --init
命令生成 tsconfig.json 文件。在项目目录下直接 tsc,编译的时候就会走配置文件有时你会遇到定义了
global.d.ts
但其中的类型就是无法使用的情况(如无法引入 。module.scss ),很大概率就是你的include
字段未包含`.d.ts,导致ts未能编译到
.d.ts`文件,引发类型无法使用的情况使用
compilerOptions
中的paths
字段可实现类似 webpack 路径 alias 功能类似于 webpack 配置的
alias
选项: