nodejs06

Commonjs

commonjs模块规范,规定了Nodejs中模块规范,二进制规范,网络规范等。CommonJS是一种规范,NodeJS是这种规范的实现。

exports

  1. exports是module.exports的别名,两者等价
  2. 切断引用
//module.exports是老大
module.exports = function () {};
exports.a = "yf";

require加载规则

  1. 优先从缓存加载
  2. 核心模块
  3. 自定义模块
  4. 第三方包
  • 包可能包含多个模块
  • 找node_modules
    • 默认在该文件同级找
    • 找不到向上找
  • 在引包的时候,过程如下
    • 找node_modules
    • 找moment目录
    • 找package.json
    • 找main属性
    • 找main属性对应的文件
    • 如果有任一环节出错,会在该目录找index.js

UMDjs

Universal Module Definition work everywhere

  1. 兼容多种javascript模块规范
  • 在nodejs中可以作为第三方包
  • 在require中可以作为模块加载
  • 在js原生中可以使用script引入
  1. 这种代码与环境无关
//先检查是不是服务端环境
//不是,就检查是不是requirejs,其中define不仅要是函数,而且要有环境
//如果还不是,那么有一个全局对象moment
;(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
    typeof define === 'function' && define.amd ? define(factory) :
    global.moment = factory()
}(this,(function () {}))

你可能感兴趣的:(nodejs06)