学习呦
14 10月 2025 2 min read

模块+module

Written by 米豆

这里仅介绍ts模块在其他模块规范的标准上有何不同,并不是重新介绍ESM的概念,或者AMD、CJS、UMD等其他规范模块的相关概念

ts的导出和es6的导出差不多,不同的地方用时查到再补充

ts编译器找导入包的过程

ts的编译器首先会找在.ts/x文件头部的import声明,去找这些文件,定位他们的位置,定位文件位置的策略有两种,经典策略和node定位文件的策略

可以通过--module选项指定使用的策略

经典策略

按照文件树去一层一层的找,找每一个文件夹下的.ts或者.d.ts文件,去找有没有导出的模块

node策略

ts仿照node查找模块的策略

非真正的node寻找文件的算法,只是ts在编译阶段模仿了下node的策略

官方handbook建议使用node的模块策略

和node差不多,会去找文件,文件夹,但不是找package.json中的"main"配置项,而是找type配置项,.d.ts文件也回去找,看看里面的声明

如果不是在自己的项目里,那就在node_modules下找,按照上面的套路去找,每一层的node_modules都会找,直到根目录下的node_modules

↑