Js中得模块规范(CommonJs, AMD, CMD):
1.CommonJs就是为JS得表现来制定得规范, NodeJS是这种规范得实现, webpack也是以commonJS得形式来书写,因为js没有模块得功能所以commomJS应运而生,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。它的终极目标是提供一个类似Python,Ruby和Java标准库。
require()表示引入外部模块, exports 对象用于导出当前模块得方法和变量,唯一的导出口;module对象就代表模块本身。不过,说了CommonJS也说了Node,那么我觉得也得先了解下NPM了。NPM作为Node的包管理器,不是为了帮助Node解决依赖包的安装问题嘛,那它肯定也要遵循CommonJS规范啦,它遵循包规范(还是理论)的。CommonJS WIKI讲了它的历史,还介绍了modules和packages等。
2.AMD就只有一个接口:define(id? dependencies?, factory)
它要在声明模块得时候制定所有依赖(dep), 并且还要当作形参传到factory中,像这样:
define(['dep1', 'dep2'], function(dep1, dep2){
var exports = {};
exports.method = function(){...};
return exports;
})