Node.js模块加载顺序
2018-01-08 10:24
489 查看
Node.js模块分为核心模块和文件模块;
核心模块是Node.js标准API中提供的模块,可以直接通过require获取;
文件模块是存储为单独的文件的模块,可以是javascript代码、Json或编译好的C/C++代码;
核心模块拥有最高的加载优先级,如果有模块与其明明冲突,Node.js总是加载核心模块;
文件模块如果不显式指定文件模块扩展名,则会按照.js、.json、.node的顺序加上扩展名;
文件模块的加载有两种方式,一种是按路径加载,一种是查找node_modules文件夹;
文件模块按路径加载又分为按相对路径加载和按绝对路径加载两种;
优先加载核心模块;
以路径形式加载文件模块:
① 如果显示指定文件模块扩展名,则在该路径下查找该模块是否存在;
② 如果未显示指定文件模块扩展名,则在该路径下,依次查找以.js、.json、.node为扩展名的模块是否存在;
既不是核心模块,又不是以路径形式表示的模块,则首先在当前目录的node_modules目录中查找该模块是否存在,若不存在,则继续在其父目录的node_modules目录中查找,反复执行这一过程,直到根目录为止。
核心模块是Node.js标准API中提供的模块,可以直接通过require获取;
文件模块是存储为单独的文件的模块,可以是javascript代码、Json或编译好的C/C++代码;
核心模块拥有最高的加载优先级,如果有模块与其明明冲突,Node.js总是加载核心模块;
文件模块如果不显式指定文件模块扩展名,则会按照.js、.json、.node的顺序加上扩展名;
文件模块的加载有两种方式,一种是按路径加载,一种是查找node_modules文件夹;
文件模块按路径加载又分为按相对路径加载和按绝对路径加载两种;
优先加载核心模块;
以路径形式加载文件模块:
① 如果显示指定文件模块扩展名,则在该路径下查找该模块是否存在;
② 如果未显示指定文件模块扩展名,则在该路径下,依次查找以.js、.json、.node为扩展名的模块是否存在;
既不是核心模块,又不是以路径形式表示的模块,则首先在当前目录的node_modules目录中查找该模块是否存在,若不存在,则继续在其父目录的node_modules目录中查找,反复执行这一过程,直到根目录为止。
相关文章推荐
- 【 js 模块加载 】深入学习模块化加载(node.js 模块源码)
- Node.js源码研究之模块组织加载
- node.js require 加载自己的模块
- node.js使用require()函数加载模块
- node.js 模块加载机制
- Node.js模块以及模块加载机制
- Node.js模块加载详解
- Node.js如何把单个文件夹作为模块加载以及模块缓存
- node.js(3) 模块加载机制
- Node.js 模块加载机制
- 【 js 模块加载 】【源码学习】深入学习模块化加载(node.js 模块源码)
- Node.js模块加载详解
- Node.js---02、node.js 模块加载机制
- node.js 加载mysql模块问题
- 关于node.js的模块查找顺序(require.resolve())
- node.js使用require()函数加载模块
- Node.js模块 加载笔记
- 浅析node.js的模块加载机制
- Angular Material串串学客户端开发 2 - Node.js模块加载机制Require()
- js中页面加载完成后执行的几种方式及执行顺序