什么是模块化
- 模块化开发的最终目的是将程序划分成一个个小的结构
- 这个结构中编写属于自己的逻辑代码,有自己的作用域,不会影响到其他的结构
- 这个结构可以将自己希望暴露的变量,函数,对象等导出给其结构使用
- 也可以通过某种方式,导入另外结构的变量,函数,对象等
- 这个结构被称为模块;该过程就是模块化开发
模块化的历史
没有模块化带来的问题
CommonJS规范和Node关系
export导出
module.export
require细节
模块的加载过程
CommonJS规范缺点
AMD规范
require.js使用
CMD规范
seaJS使用
ES Module
案例代码结构组件
export 关键字
import 关键字
export和import结合使用
default用法
import函数
- ES11新增特性:import.meta
- meta属性本身也是一个对象: {url: '当前模块所在路径}
import data
ESModule的解析流程
阶段一:构建阶段
阶段二和三:实例化阶段-求值阶段
ESModule和CommonJS相互引用
- webpack环境下可以