1 浏览器端的模块化
1) AMD(Asynchronous Module Definition,异步模块定义),代表产品为:Require.js
2) CMD(Common Module Definition,通用模块定义),代表产品为:Sea.js
2 服务器端的模块化
服务器端的模块化规范是使用CommonJS规范:
1) 使用require引入其他模块或者包
2) 使用exports或者module.exports导出模块成员
3) 一个文件就是一个模块,都拥有独立的作用域
3 ES6模块化
ES6模块化规范中定义:
1) 每一个js文件都是独立的模块
2) 导入模块成员使用import关键字
3) 暴露模块成员使用export关键字
小结:推荐使用ES6模块化,因为AMD,CMD局限使用与浏览器端,而CommonJS在服务器端使用,而ES6模块化是浏览器端和服务器端通用的规范。