Skip to content

ES6 模块化

ES6 模块化的核心思想是 尽量静态化,使得编译时就能确认模块间的依赖关系、以及输出输入的变量。而 AMD、CMD、COMMONJS 是在运行时确认这些东西。

ES6 模块化编译时加载,使得静态分析成为可能,促使了 类型校验、宏 的实现。

基本语法

定义暴露模块 : export

  • 暴露一个对象:

export default 对象

  • 暴露多个:
js
export var xxx = value1

export let yyy = value2

var xxx1 = value1
let yyy1 = value2

export { xxx1, yyy1 }

引入使用模块 : import

  • default 模块:

import xxx from '模块路径/模块名'

  • 其它模块
js
import { xxx, yyy } from "模块路径/模块名"

import * as module1 from "模块路径/模块名"

问题

  1. 所有浏览器还不能直接识别 ES6 模块化的语法
  • 通过打包工具进行编译:

使用 Babel 将 ES6--->ES5(使用了 CommonJS) ----浏览器还不能直接支行

使用 Browserify--->打包处理----浏览器可以运行