NodeJS 由浅入深学习系列(四)Node模块机制

一 CommonJs规范

  1. 解决的问题
    • JavaScript 没有模块系统
    • JavaScript 原生标准库较少
    • JavgaScript 没有标准接口
    • 缺少包管理系统`
  2. 模块规范
    • 模块引用
    • 模块定义
    • 模块标识

二 Node模块加载

三 核心模块

四 C/C++扩展模块

五 模块调用栈

六 NodeJs源码结构分析

七 包与NPM

八 前后端共用模块

  • AMD规范
  • CMD规范
  • 兼容多种模块规范
(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;
});

转载于:https://www.cnblogs.com/vaik/p/5572671.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值