背景

JavaScript 程序本来很小——在早期,它们大多被用来执行独立的脚本任务,在你的 web 页面需要的地方提供一定交互,所以一般不需要多大的脚本。过了几年,我们现在有了运行大量 JavaScript 脚本的复杂程序,还有一些被用在其他环境(例如 Node.js)。

因此,近年来,有必要开始考虑提供一种将 JavaScript 程序拆分为可按需导入的单独模块的机制。

本文要介绍的CommonJSAMDUMDES Module其实都是 JavaScript 中的 模块规范

CommonJS

简介

  • CommonJS 的模块规范如今被广泛使用,特别是用于使用 Node.js 进行的服务器端 JavaScript 编程。也用于浏览器端JavaScript的开发,但由于浏览器不支持CommonJS,代码必须用转译器(比如:browserify)打包。
  • 该项目由Mozilla工程师 Kevin Dangoor 于 2009 年 1 月启动,最初命名为ServerJS
  • 2009 年 8 月,该项目更名为CommonJS,以展示API更广泛的适用性。

使用方法

1
2
3
4
5
6
7
8
9
10
//------ a.js ------
var info = require('./b.js'); // import module

//------ b.js ------
exports = function(){
return {
name: '张无忌',
age: 19
};
}