加载模块

当我们在代码中引用模块时,节点首先在必需语句中查找引用文件夹内的 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 下的文件。

在任何文件夹中找不到模块的最后一种方法是全局模块安装文件夹。