菜单

特性与优势

相关源文件

本页面介绍了在开发工作流中使用 nodemon 的主要特性和优势。它解释了 nodemon 提供的功能以及这些功能如何使 Node.js 开发者受益。有关安装说明,请参阅安装与快速入门;有关命令行选项,请参阅命令行界面

核心功能概述

Nodemon 是一个实用工具,它监控您的 Node.js 应用程序文件中的更改,并在检测到更改时自动重启服务器,从而消除了在开发过程中手动停止和重启应用程序的需要。

来源: README.md5-9 website/index.html42-53

自动重启能力

文件更改检测

Nodemon 自动检测项目目录中的文件更改,并自动重启您的应用程序,无需手动干预。

  • 默认监控:监控当前工作目录中的更改
  • 扩展名检测:根据您的应用程序自动识别要监控的文件扩展名
  • 干净退出支持:适用于能干净退出的应用程序,并持续监控更改

来源: README.md66-69 README.md70-73

手动重启选项

在自动监控活跃时,您可以通过在 nodemon 运行的终端中输入rs来手动触发重启,当您需要立即重启时提供灵活性。

来源: README.md70-73

灵活的配置系统

Nodemon 提供了多种配置开发环境的方式,并具有清晰的优先级层次结构。

来源: README.md74-118

配置文件

Nodemon 支持本地和全局配置文件

  • nodemon.json:可放置在当前工作目录或主目录中
  • package.json 集成:在 package.json 中添加 nodemonConfig 部分
  • 备用配置文件:使用 --config <file> 指定自定义配置文件

配置参数可以控制 nodemon 的所有行为,从监控哪些文件到如何管理进程。

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

优先级层次结构

配置值遵循严格的优先级顺序,确保可预测的行为

  1. 命令行参数(最高优先级)
  2. 本地配置文件
  3. 全局配置文件
  4. 默认设置

这使得项目特定和开发者特定的偏好可以共存。

来源: README.md78-83

高级文件监控

可扩展的文件监控

Nodemon 提供复杂的文件监控功能,可以根据您的项目需求进行定制

  • 自定义扩展名:指定要监控的文件扩展名(默认:.js、.mjs、.coffee、.litcoffee、.json)
  • 目录目标:监控特定目录而非整个项目
  • Globbing 支持:使用模式来包含或排除文件,使其不受监控
  • 旧版监控模式:支持标准文件监控不起作用的环境

来源: README.md174-177 README.md184-205 README.md162-170

忽略功能

轻松将文件或目录排除在监控之外,以防止不必要的重启

  • 默认忽略:自动忽略常见目录(.git、node_modules、bower_components 等)
  • 自定义忽略:添加项目特定的目录或文件以忽略
  • 基于模式的忽略:使用通配符模式忽略文件组

来源: README.md184-208

跨语言支持

非 Node 脚本执行

Nodemon 不限于 Node.js 应用程序——它可以在各种语言中监控和执行脚本

  • 自动扩展名检测:根据脚本识别合适的监控扩展名
  • 自定义可执行文件:定义文件扩展名与其执行器之间的映射
  • 执行参数:将参数直接传递给执行的程序

来源: README.md130-152

默认可执行文件

execMap 配置允许您为特定文件扩展名定义默认可执行文件

此配置使 nodemon 能够处理不同语言的脚本,而无需额外的命令行参数。

来源: README.md140-158

进程管理特性

重启控制

微调应用程序的重启方式和时机

  • 延迟选项:在重启前添加一个节流延迟,以处理多个快速更改
  • 优雅关机:发送自定义信号以允许您的应用程序正确关闭
  • 信号处理:在您的应用程序中捕获重启信号,用于自定义清理操作

来源: README.md222-254 README.md256-304

自定义信号

配置 nodemon 在重启应用程序时使用特定信号

这允许您的应用程序在被 nodemon 重启时实现自定义行为。

来源: README.md256-287

事件系统与可扩展性

事件驱动架构

Nodemon 使用事件驱动架构,您可以利用它实现自定义行为

  • 状态更改事件:在 nodemon 启动、重启或崩溃时触发操作
  • 通知集成:为特定事件创建自定义通知
  • 自定义操作:在特定的 nodemon 事件上执行命令

来源: README.md306-320

编程 API

Nodemon 可以在您自己的脚本或工具中作为 Node.js 模块使用

  • API 集成:在您的 Node.js 应用程序中将 nodemon 作为库导入
  • 事件监听:以编程方式订阅 nodemon 事件
  • 输出重定向:将标准输出和错误管道传输到自定义处理程序

来源: README.md122-124 README.md322-332

与开发工具集成

工作流集成

Nodemon 与流行的开发工作流工具无缝集成

  • Gulp 集成:在 Gulp 工作流中使用 gulp-nodemon 插件
  • Grunt 集成:在 Grunt 工作流中使用 grunt-nodemon 插件
  • Docker 兼容性:对容器化环境的特殊考量
  • 调试模式支持:通过 --inspect 标志与 Node.js 调试工具配合使用

来源: README.md334-341

开发工作流优势

生产力提升

Nodemon 显著改进了开发工作流

功能优点
自动重启消除了手动服务器重启,节省时间并保持专注
文件监控提供代码更改的即时反馈
配置灵活性允许根据不同的项目需求进行自定义
跨语言支持实现不同技术之间的一致工作流
进程管理在开发过程中适当维护应用程序状态
事件系统实现自定义集成和通知

来源: README.md5-9 website/index.html29-32

设计原则

Nodemon 遵循使其在开发中特别有价值的关键设计原则

  • 更少的标志更好:简单、直观的命令行界面
  • 跨平台兼容性:在不同操作系统上保持一致运行
  • 专注于核心功能:在解决关键问题的同时保持简洁
  • 可扩展性:允许在 nodemon 之上构建其他工具
  • 完整的 API 访问:所有 CLI 功能都可以通过编程方式使用
  • 测试驱动开发:所有贡献都经过测试以确保稳定性

这些原则确保 nodemon 仍然是一个可靠、专注的工具,它解决了在开发过程中自动化应用程序重启的特定问题。

来源: README.md350-357

总结

Nodemon 提供了一套全面的功能,通过在文件更改时自动化重启过程,从而简化了 Node.js 开发。其灵活的配置系统、高级文件监控功能、跨语言支持和集成选项使其成为高效开发工作流的必备工具。通过消除手动重启并提供代码更改的即时反馈,nodemon 帮助开发者保持专注和提高生产力。