deno内部是怎么解析和运行modules的?

最开始我以为,V8引擎需要runtime(也就是deno)来实现 importrequire 关键字,这样V8运行的时候就可以调用注册的函数来解析和运行modules。

但最近读了 Internals of Deno 这本书,尤其下面两节:

  • 5.12 Module graphs
  • 5.15 Register / compile module

根据我的理解,似乎在 5.12 这一步 deno 可能只是处理了 deno.jsonpackage.json 中声明的 dependencies,即:下载它们、生成本地的cache(可以直接被V8引擎运行的 js 代码)。然后在 5.15 这一步 deno 才真正的加载这些cache并且在 V8引擎里去跑。

我不是很确定我的理解是否正确?

这里贴一下 5.12 和 5.15 两节的链接:

这个问题我在 deno 的 discord channel 里也问了:https://discord.com/channels/684898665143206084/684898665151594506/1285880565681229856