JavaScript 语言诞生至今,模块规范化之路曲曲折折。社区先后出现了各种解决方案,包括 AMD、CMD、CommonJS 等,而后 ECMA 组织在 JavaScript 语言标准层面,增加了模块功能(因为该功能是在 ES2015 版本引入的,所以在下文中将之称为 ES6 module)。 今天我们就来聊聊,为什么会出现这些不同的模块规范,它们在所处的历史节点解决了哪些问题?
何谓模块化? 或根据功能、或根据数据、或根据业务,将一个大程序拆分成互相依赖的小文件,再用简单的方式拼装起来。
全局变量 演示项目 为了更好的理解各个模块规范,先增加一个简单的项目用于演示。
项目目录: ├─ js # js文件夹 │ ├─ main.js # 入口 │ ├─ config.js # 项目配置 │ └─ utils.js # 工具 └─ index.html # 页面html 1. 2. 3. 4. 5. Window 在刀耕火种的前端原始社会,JS 文件之间的通信基本完全依靠window对象(借助 HTML、CSS 或后端等情况除外)。