ESM 模块化

153 阅读1分钟

背景

server端的NodeJS,它是对CommonJS的一个实现;
Require.js则是可以在浏览器使用,它是对AMD的一个实现。
es module 是ES6官方化了模块

内容

  1. Parsing(解析) : 递归(深度优先后序遍历)的加载所有导入的模块,构建一个依赖关系图。每一个模块都只有一个module record,这也保证了每一个模块只会被执行一次。

  2. Instantiating(实例化) : 对于每个新加载的模块,都会创建一个模块实例,并使用该模块中 export 的内容的 内存地址 对 import 进行映射(导出的模块和导入的模块都指向同一段内存地址–实时绑定)。

  3. Evaluating(求值) : 运行每个新加载模块的主体代码。