1. 加载核心模块
Node中有一些以二进制形式发布的模块,这些模块被称为核心模块。
var http = require('http');
2. 加载文件模块
通过提供绝对路径从文件系统中加载非核心模块
var myModule = require('/home/my_module/my_module');
或者提供基于当前文件的相对路径
var myModule1 = require('./my_module/my_module');
var myModule2 = require('../lib/my_module')
3. 加载文件夹模块
var myModule = require('./myModuleDir');
首先,Node会在指定的文件夹下查找模块,Node会假定该文件夹是一个包,并在package.json中查找包的定义,Node会尝试解析该文件并查找main属性,将main属性当作入口点的相对路径。如若不存在package.json,那么包的入口点会假定默认值index.js。
4. 从node_modules 文件夹加载
如果一个模块名既不是相对路径,也不是核心模块,那么Node会尝试在当前目录下的node_modules文件夹中查找该模块。如果该目录下的node_modules没有找到,那么Node会继续查找上一级的父文件夹的nodel_modules。这一过程一直持续到达根目录或者找到该模块为止。
|