node module

作者: YC____ | 来源:发表于2019-07-22 22:17 被阅读0次
    1. JS模块化方面的不足
      JS没有模块系统,不支持封闭的作用域和依赖管理
      没有标准库,没有文件系统和IO流API
      也没有包管理系统
    2. CommonJS规范
      封装功能
      封闭作用域
      可能解决依赖问题
      工作效率更高,重构方便
    3. Node中的CommonJS
      在node.js 里,模块划分所有的功能,每个JS都是一个模块
      实现require方法,NPM实现了模块的自动加载和安装依赖
      (function(exports,require,module,__filename,__dirname){
      exports = module.exports={}
      exports.name = 'zfpx';
      exports = {name:'zfpx'};
      return module.exports;
      })
    4. 模块分类
      4.1 原生模块
      http path fs util events 编译成二进制,加载速度最快,原来模块通过名称来加载

    4.2 文件模块
    在硬盘的某个位置,加载速度非常慢,文件模块通过名称或路径来加载 文件模块的后缀有三种

    后缀名为.js的JavaScript脚本文件,需要先读入内存再运行
    后缀名为.json的JSON文件,fs 读入内存 转化成JSON对象
    后缀名为.node的经过编译后的二进制C/C++扩展模块文件,可以直接使用
    一般自己写的通过路径来加载,别人写的通过名称去当前目录或全局的node_modules下面去找

    4.3 第三方模块
    如果require函数只指定名称则视为从node_modules下面加载文件,这样的话你可以移动模块而不需要修改引用的模块路径
    第三方模块的查询路径包括module.paths和全局目录
    4.3.1 . 全局目录
    window如果在环境变量中设置了NODE_PATH变量,并将变量设置为一个有效的磁盘目录,require在本地找不到此模块时向在此目录下找这个模块。 UNIX操作系统中会从 HOME/.node_modulesHOME/.node_libraries目录下寻找

    4.4 模块的加载策略


    lookmodule.png

    4.5 文件模块查找规则


    lookfile.png

    转载自 http://zhufengpeixun.com/plan/html/7.module&NPM.html

    相关文章

      网友评论

        本文标题:node module

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