nodejs06

作者: 我_巨可爱 | 来源:发表于2017-10-30 16:48 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/evqmpxtx.html