模块加载策略
相对模块路径
模块路径以 ./ 或者 ../ 开头
例:
- 如果文件 bar.ts 中含有 import foo from ‘./foo’,那么 foo 文件必须与 bar.ts 文件存在于相同的文件夹下
如果文件 bar.ts 中含有 import foo from ‘../foo’,那么 foo 文件所存在的地方必须是 bar.ts 的上一级目录;
模块路径
当导入路径不为相对模块路径时,模块解析则会模仿node模块解析策略进行模块查找
例:当你使用 import foo from ‘foo’,将会按如下顺序查找模块
查找当前目录下是否存在foo.ts文件,有则直接使用
- 查找当前目录下是否存在foo文件夹,有则继续以下
- 查找foo文件夹中是否存在index.ts文件,有则直接使用
- 查看foo文件夹中的package.json文件中指定的types是否存在,有则直接使用
- 查看foo文件夹中的package.json文件中指定的main文件是否存在,有则直接使用
