Inspire - Capo Productions
moduleResolution 
当 module 为 commonjs 默认值是 node 其他情况默认值是 classic
这里存在两种截然不同的模块:
- 相对模块路径(路径以 
.开头,例如:./someFile或者../../someFolder/someFile等); - 其他动态查找模块(如:
core-js,typestyle,react或者甚至是react/core等)。 
1 相对模块路径 
这很简单,仅仅是按照相对路径来就可以了:
- 如果文件 
bar.ts中含有import * as foo from './foo',那么foo文件必须与bar.ts文件存在于相同的文件夹下 - 如果文件 
bar.ts中含有import * as foo from '../foo',那么foo文件所存在的地方必须是bar.ts的上一级目录 - 如果文件 
bar.ts中含有import * as foo from '../someFolder/foo',那么foo文件所在的文件夹someFolder必须与bar.ts文件所在文件夹在相同的目录下 
你还可以思考一下其他相对路径导入的场景。😃
2 动态查找 
当导入路径不是相对路径时,模块解析将会模仿 Node 模块解析策略,下面我将给出一个简单例子:
- 当你使用 
import * as foo from 'foo',将会按如下顺序查找模块:./node_modules/foo../node_modules/foo../../node_modules/foo- 直到系统的根目录
 
 - 当你使用 
import * as foo from 'something/foo',将会按照如下顺序查找内容./node_modules/something/foo../node_modules/something/foo../../node_modules/something/foo- 直到系统的根目录
 
 
相关配置:moduleResolution
相同代码,配置的 moduleResolution 不同,模块解析策略也不同