Node.js 的模块加载流程是其核心特性之一,它允许开发者通过 require
函数来导入和使用模块。以下是 Node.js 模块加载的详细流程:
require
调用会返回缓存的版本,以提高性能。require(X)
时,Node.js 首先检查 X
是否为内置模块(如 fs
, http
)。X
解析为一个核心模块或文件路径。X
以 /
开头,则被视为绝对路径;如果以 ./
, ../
或 /
开头以外的其他字符开头,则被视为相对路径或模块名。X
文件。X
文件,尝试查找 X.js
文件。X.json
文件。X.node
文件(通常用于二进制插件)。X
是一个目录,Node.js 会查找该目录下的 package.json
文件,并读取其中的 main
字段作为入口文件。package.json
中没有 main
字段或 main
字段指向的文件不存在,则默认查找目录下的 index.js
文件。module
, exports
, require
, __filename
, 和 __dirname
等参数。module.exports
)会被缓存并作为 require(X)
的结果返回。require
调用将直接从缓存中获取结果,而不会重新执行模块代码。// math.js
module.exports = {
add: function(a, b) {
return a + b;
}
};
// app.js
const math = require('./math');
console.log(math.add(2, 3)); // 输出: 5
npm install
安装缺失的依赖包。通过以上流程和方法,可以有效地管理和优化 Node.js 中的模块加载过程。
领取专属 10元无门槛券
手把手带您无忧上云