菜单

概述

相关源文件

Nodemon 是一个用于 Node.js 开发的实用工具,它会监控应用程序中的文件更改并自动重启服务器。本文档介绍了 nodemon、其用途以及对其架构和功能的概括性总结。有关安装说明,请参见安装和快速入门

什么是 Nodemon?

Nodemon 是一个监控实用工具,通过在检测到目录中的文件更改时自动重启 Node 应用程序来增强 Node.js 开发工作流程。它充当标准 node 命令的包装器,无需修改您的应用程序代码。

当您运行上述命令时,nodemon 会启动您的 Node.js 应用程序并开始监控文件系统。对源文件的任何更改都会触发应用程序的自动重启,从而在开发过程中提供即时反馈。

来源:README.md5-9 package.json18

系统架构

Nodemon 遵循模块化、事件驱动的架构来提供其核心功能。

高层架构

组件

  1. CLI 接口:处理命令行参数并初始化 nodemon 系统。
  2. 配置系统:从多个来源(命令行、本地配置、全局配置)加载并合并配置。
  3. 文件监控系统:根据配置的模式监控文件系统更改。
  4. 事件总线:协调组件之间操作的中央通信机制。
  5. 进程管理:处理目标应用程序的停止和启动。

来源:README.md31-52 package.json19-27

核心功能

配置系统

Nodemon 使用分层配置方法,合并来自多个源的设置。

特异性顺序确保命令行参数优先于本地配置文件,而本地配置文件又会覆盖全局设置。

来源:README.md74-95 README.md100-118

文件监控和重启过程

当 nodemon 检测到文件更改时,它会触发一系列事件,从而导致应用程序重启。

此过程在 nodemon 活跃时持续运行,确保您的应用程序始终反映最新的代码更改。

来源:README.md66-68 README.md52

主要功能

文件类型自动检测

Nodemon 根据正在运行的脚本自动检测要监控的合适文件扩展名

  • 对于 Node.js 应用程序:.js.mjs.coffee.litcoffee.json
  • 对于其他可执行文件:由脚本扩展名决定(例如,Python 为 .py

可以使用 -e--ext 选项指定自定义扩展名。

来源:README.md176-182

可定制的监控和忽略规则

Nodemon 允许通过以下方式对哪些文件触发重启进行精细控制:

  • 监控特定目录:--watch app --watch libs
  • 忽略特定路径:--ignore lib/ --ignore tests/
  • 支持 glob 模式:--ignore '*.test.js'

来源:README.md162-207

支持非 Node 脚本

Nodemon 可以运行和监控任何可执行文件,而不仅仅是 Node.js 应用程序

execMap 配置允许将文件扩展名映射到特定的可执行文件,使 nodemon 适用于各种编程语言。

来源:README.md130-160

基于事件的 API 和可扩展性

Nodemon 可以作为 Node.js 模块以编程方式使用,也可以通过自定义事件处理程序进行扩展,从而允许与构建工具和复杂工作流程集成。

来源:README.md306-318 README.md122-124

设计原则

Nodemon 遵循特定的设计原则,以确保其保持专注和高效:

  • 参数越少越好
  • 跨所有平台工作
  • 功能越少越好(精益求精)
  • 让个人在 nodemon 的基础上进行构建
  • 提供所有 CLI 功能作为 API
  • 高度重视测试

来源:README.md350-357

有关 nodemon 的更多详细信息,请参阅这些附加资源: