Node之模块实现

Node之模块实现

 

Node引入模块经历的3个步骤

  1. 路径分析
  2. 文件定位
  3. 编译执行

Node 模块分为两类

  1. 核心模块(Node提供的模块)
  2. 文件模块(用户编写的模块)

 

编译过程的优先级

  1. 核心模块>文件模块  

    核心模块(http、fs、path等) 部分在node源代码的编译过程中,编译进了二进制执行文件。在node进程中启动时,部分核心模块就直接加载进了内存中。

    文件模块:在运行时动态加载,需要完整的路径分析,文件定位,编译执行 所以比核心模块慢

  2.路径形式的文件模块

    .、..和/开始的标识符 都被当作文件模块来处理

    自定义模块是所有方式最慢的一种

    1.模块路径的生成规则:

      1.当前文件目录下的node——modules目录

      2.父目录下的node_modules目录

      3.父目录的父目录下的node_modules目录

      4.沿路径向上逐级递归,直到根目录下的node_modules目录

      当前文件的路径越深,模块查找耗时会越多,这是自定义模块的加载速度是最慢的原因

    2.文件定位

      1.文件扩展名

        .js->.node->.json 依次补足扩展名,一次尝试

    

    

posted @ 2016-10-28 09:46  DemonGao  阅读(152)  评论(0编辑  收藏  举报