一 CommonJs规范
- 解决的问题
- JavaScript 没有模块系统
- JavaScript 原生标准库较少
- JavgaScript 没有标准接口
- 缺少包管理系统`
- 模块规范
二 Node模块加载
三 核心模块
四 C/C++扩展模块
五 模块调用栈
六 NodeJs源码结构分析
七 包与NPM
八 前后端共用模块
(function(name,definition){
// 检测上下文环境是否为AMD或CMD
var hasDefine = typeof define === 'function',
// 检查上下文环境是否为Node
hasExports = typeof module !== 'undefined' && module.exports;
if(hasDefine){
// AMD环境或CMD环境
define(definition);
} else if(hasExports){
// 定义普通Node模块
module.exports = definition();
}else{
// 将模块的执行结果挂在windows变量中,在浏览器中this指向windows对象
this[name] = definition();
}
})('hello',function(){
var hello = function(){};
return hello;
});