本页面详细介绍了 nodemon 系统中的主要模块及其职责。有关事件系统的信息,请参阅事件系统。有关配置详情,请参阅配置系统。有关文件监控的具体信息,请参阅文件监控系统。
Nodemon 围绕几个核心组件构建,这些组件协同工作以监控文件更改并自动重启 Node.js 应用程序。这些组件以模块化结构组织,职责明确分离。
主模块(nodemon.js)作为 CLI 和程序化 API 使用的入口点。它初始化系统,协调各组件,并提供公共 API。
主模块导出一个主要函数,该函数接受一个设置对象或一个命令字符串。此函数使用提供的配置初始化 nodemon,并返回一个允许程序化控制的 API 对象。
来源:lib/nodemon.js24-251 lib/nodemon.js253-316
事件总线(utils/bus)作为所有组件之间的中心通信通道。它基于 Node.js 的 EventEmitter,并在主模块中作为 utils.bus 导入。
start:当 nodemon 启动子进程时触发restart:当 nodemon 需要重启进程时触发crash:当受监控的应用程序崩溃时触发exit:当受监控的应用程序退出时触发config:update:当配置更改时触发log:用于内部消息传递事件总线模式实现了组件间的松散耦合,允许它们在没有直接依赖的情况下进行通信。
来源:lib/nodemon.js8 lib/utils/index.js16 lib/nodemon.js25-116
配置系统(config/index.js)负责从多个来源加载、合并和应用配置设置。
nodemon.json 文件nodemon.json 文件nodemonConfig 属性的 package.json 文件配置系统对 nodemon 的灵活性至关重要,它允许用户通过多个接口点自定义其行为。
来源:lib/nodemon.js11 lib/nodemon.js80-104
监控系统(monitor/index.js)根据配置的规则监控文件更改,并在必要时触发重启。
监控系统结合文件监控和模式匹配来确定何时触发重启。
来源:lib/nodemon.js3 lib/nodemon.js246
规则系统(rules/add.js)负责将文件模式转换为正则表达式,并管理监控和忽略规则。
*.js, public/**/*)规则系统为 nodemon 的文件过滤功能提供了基础,能够精确控制哪些文件触发重启。
Nodemon 包含各种实用函数(utils/index.js、utils/log.js),这些函数提供了整个应用程序中使用的常见功能。
实用函数提供了必要的横切功能,支持核心组件。
来源:lib/utils/index.js1-103 lib/utils/log.js1-82
进程管理组件(spawn.js)负责创建、监控和控制运行用户应用程序的子进程。
进程管理对 nodemon 的核心重启功能至关重要,它确保了应用程序状态之间的平稳过渡。
来源:lib/nodemon.js12 lib/nodemon.js239-240
核心组件通过事件总线进行交互,以提供 nodemon 的文件监控和应用程序重启功能。
此系统流程代表了 nodemon 操作的完整周期,从初始化到由文件更改或用户输入触发的重启过程。
Nodemon 暴露了几个集成点,使其既可以作为命令行工具使用,也可以作为程序化 API 使用。
nodemon [options] [script.js] 直接执行模块化架构和事件驱动设计使 nodemon 既灵活又强大,适用于各种开发工作流程。