TypeScript 对module resolve的顺序

First, looking up a file, then looking up an applicable folder.

 

 import { b } from "moduleB" in source file /root/src/moduleA.ts would result in the following lookups:

 

  1. /root/src/node_modules/moduleB.ts =========》一、file
  2. /root/src/node_modules/moduleB.tsx
  3. /root/src/node_modules/moduleB.d.ts
  4. /root/src/node_modules/moduleB/package.json (if it specifies a "types" property)
  5. /root/src/node_modules/@types/moduleB.d.ts  // ====》二、@types
  6. /root/src/node_modules/moduleB/index.ts   // ======》 三、modules folder
  7. /root/src/node_modules/moduleB/index.tsx
  8. /root/src/node_modules/moduleB/index.d.ts

  9. /root/node_modules/moduleB.ts
  10. /root/node_modules/moduleB.tsx
  11. /root/node_modules/moduleB.d.ts
  12. /root/node_modules/moduleB/package.json (if it specifies a "types" property)
  13. /root/node_modules/@types/moduleB.d.ts
  14. /root/node_modules/moduleB/index.ts
  15. /root/node_modules/moduleB/index.tsx
  16. /root/node_modules/moduleB/index.d.ts

  17. /node_modules/moduleB.ts
  18. /node_modules/moduleB.tsx
  19. /node_modules/moduleB.d.ts
  20. /node_modules/moduleB/package.json (if it specifies a "types" property)
  21. /node_modules/@types/moduleB.d.ts
  22. /node_modules/moduleB/index.ts
  23. /node_modules/moduleB/index.tsx
  24. /node_modules/moduleB/index.d.ts

 

Don’t be intimidated by the number of steps here

- TypeScript is still only jumping up directories twice at steps (9) and (17). This is really no more complex than what Node.js itself is doing.

 
posted @ 2020-03-06 00:29  hh9515  阅读(552)  评论(0)    收藏  举报