1-3 Node模块化的细节
模块的查找
- 绝对路径
· 根据绝对路径直接加载模块 - 相对路径.
/或../
· 相对于当前模块
· 转换为绝对路径
· 加载模块 - 相对路径
· 两种写法相当于在node_modules中导入模块是不需要加./ ../的
· 检查是否有内置模块, 如fs pash
· 检查当前目录中的node_modules
· 检查上级目录中的node_modules
· 转换为绝对路径
· 加载模块 - 关于后缀
· 如果不提供后缀名自动补全
· js json node mjs - 关于文件名
· 如果仅提供目录,不提供文件名,则自动寻找该目录中的index.js
·package.json中的main字段
表示包的默认入口
导入或执行包时仅提供目录,则使用main补全入口
默认值为index.js
module对象
用于导入,记录当前模块的信息
require函数
用于导出的
当执行模块或使用requir时,会将模块放置在一个函数环境中
1-4
- 目前Node中的ES模块化仍然处于实验阶段
- 模块要不是
commonjs,要么是ES
·commonjs
默认情况下都是commonjs
因此Node比较推荐用commonjs
· ES
文件名后缀名为.mjs
最近的package.json中的type的值是module - 当使用ES模块化运行时,必须添加 –
experimental-modoules
Node.js模块系统详解:加载机制与CommonJS与ES模块
本文深入探讨了Node.js模块的查找机制,包括绝对路径和相对路径的加载方式,以及如何处理后缀名和文件名。模块查找首先从内置模块开始,然后遍历node_modules目录。若未指定后缀,Node会尝试.js, .json, .node文件。对于目录,会找寻index.js或package.json的main字段作为入口。同时,介绍了module对象和require函数的作用。目前,Node.js中的ES模块化仍处于实验阶段,启用需特定配置。

被折叠的 条评论
为什么被折叠?



