自es6以前,JavaScript是天生模块化缺失的,即缺少类似后端语言的class,
作用域也只以函数作为区分。这与早期js的语言定位有关,
作为一个只需要在网页中嵌入几十上百行代码来实现一些基本的交互效果的脚本语言,
确实用不着严格的组织代码规范。但是随着时代的发展,js承担的任务越来越重,
从原先的script引入几十行代码即可的状态变成现在多人协作文件众多的地步,
管理和组织代码的难度越来越大,模块化的需求也越来越迫切。
在此背景下,众多的模块化加载器便应运而生。

模块化规范和实现

前文提到在es6模块化出现之前,为了解决模块化的需求,出现了众多的模块化机制例如cmd,amd等。遵循不同规范有sea.js, require.js等实现。