Node.js的模块载入方式与机制
2017-08-24 16:10
375 查看
Node.js的模块载入方式与机制
Node.js中模块可以通过文件路径或名字获取模块的引用。模块的引用会映射到一个js文件路径,除非它是一个Node内置模块。Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始的时候就预加载了。其它的如通过NPM安装的第三方模块(third-party modules)或本地模块(local modules),每个模块都会暴露一个公开的API。以便开发者可以导入。如
这里列下node模块的载入及缓存机制
载入内置模块(A Core Module)
载入文件模块(A File Module)
载入文件目录模块(A Folder Module)
载入node_modules里的模块
自动缓存已载入模块
一、载入内置模块
Node的内置模块被编译为二进制形式,引用时直接使用名字而非文件路径。当第三方的模块和内置模块同名时,内置模块将覆盖第三方同名模块。因此命名时需要注意不要和内置模块同名。如获取一个http模块
二、载入文件模块
绝对路径的或相对路径的
注意,这里忽略了扩展名“.js”,以下是对等的
三、载入文件目录模块
可以直接require一个目录,假设有一个目录名为folder,如假如目录结构如下
package.json定义如下
四、载入node_modules里的模块
如果模块名不是路径,也不是内置模块,Node将试图去当前目录的node_modules文件夹里搜索。如果当前目录的node_modules里没有找到,Node会从父目录的node_modules里搜索,这样递归下去直到根目录。不必担心,npm命令可让我们很方便的去安装,卸载,更新node_modules目录。
五、自动缓存已载入模块
对于已加载的模块Node会缓存下来,而不必每次都重新搜索。下面是一个示例modA.js
init.js
命令行执行:
node init.js
输入如下
可以看到虽然require了两次,但modA.js仍然只执行了一次。mod1和mod2是相同的,即两个引用都指向了同一个模块对象。
相关文章推荐
- Node.js的模块载入方式与机制
- Node.js的模块载入方式与机制
- Node.js的模块载入方式与机制
- 跟我学Node.js(四)---Node.js的模块载入方式与机制
- 跟我学Node.js(四)---Node.js的模块载入方式与机制
- Node.js入门:模块机制
- Node.js的模块机制
- node.js require 实现机制初窥;pomelo代码分析5----------- pomel-loader模块
- 深入浅出node.js:2 模块机制
- Node.js的模块机制
- 2. node.js 模块管理机制
- 解析Node.js基于模块和包的代码部署方式
- Node.js中的模块机制
- 【深入浅出Node.js系列三】深入Node.js的模块机制
- 深入浅出Node.js(三):深入Node.js的模块机制
- Node.js模块以及模块加载机制
- 解析Node.js基于模块和包的代码部署方式
- 游戏任务成就体系的实现(五):通讯模块(MsgUtil)基于NodeJS+TCP的机制的实现
- 深入浅出Node.js(三):深入Node.js的模块机制
- Node.js入门:模块机制