modules模块化

2022/8/17

# ESM模块化原理

  1. import 变量有提升
  2. 执行前按顺序解析所有import变量
  3. 生成依赖关系图
  4. 执行
  5. 执行过程中遇到循环依赖
    1. 先赋值undefined
    2. 有一个动态引用
    3. import依赖的包执行完了得到了对应的export值
    4. 动态引用解析为正确的值

# 动态引用

# 循环依赖

# 总结

  • EMS本质是:依赖关系图 + 值的引用
  • CommonJS本质是:eval函数 + 值的拷贝
  • 共同点是:export变量提升 + 挂起本文件执行、先执行被引用文件
上次更新: 11/1/2024