学习呦
模块+module
这里仅介绍
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