加载模块
当我们在代码中引用模块时,节点首先在必需语句中查找引用文件夹内的 node_module
文件夹如果模块名称不是相对的且不是核心模块,Node 将尝试在当前的 node_modules
文件夹中找到它目录。例如,如果你执行以下操作,Node 将尝试查找文件 ./node_modules/myModule.js
:
var myModule = require('myModule.js');
如果 Node 无法找到该文件,它将查看名为 ../node_modules/myModule.js
的父文件夹。如果它再次失败,它将尝试父文件夹并继续下降,直到它到达根目录或找到所需的模块。
如果你愿意,也可以省略 .js
扩展名,在这种情况下,节点将附加 .js
扩展名并搜索该文件。
加载文件夹模块
你可以使用文件夹的路径来加载模块,如下所示:
var myModule = require('./myModuleDir');
如果这样做,Node 将在该文件夹内搜索。Node 将假设此文件夹是一个包,并将尝试查找包定义。该包定义应该是名为 package.json
的文件。如果该文件夹不包含名为 package.json
的包定义文件,则包入口点将采用默认值 index.js
,在这种情况下,Node 将查看路径 ./myModuleDir/index.js
下的文件。
在任何文件夹中找不到模块的最后一种方法是全局模块安装文件夹。