TS:模块解析策略
一、 传统模块解析策略
相对导入
-
相对导入的模块是相对于导入它的文件进行解析的。
-
例如,从
/root/src/test.ts
文件中有这样一个语句import { foo } from "./foo"
,它的查找流程如下:/root/src/foo.ts
==>/root/src/foo.d.ts
非相对导入
-
非相对模块的导入,编译器则会包含导入文件的目录一次向上级目录遍历,尝试定位匹配的声明文件;
-
例如,从
/root/src/test.ts
文件中有这样一个语句import { foo } from "foo"
,它的查找流程如下:==>
/root/src/foo.ts
==>
/root/src/foo.d.ts
==>
/root/foo.ts
==>
/root/foo.d.ts
==>
/foo.ts
==>
/foo.d.ts