菜单

编程 API

相关源文件

本文档描述了如何在其他 Node.js 应用程序中以编程方式将 nodemon 用作库,而不是作为命令行工具。有关从命令行使用 nodemon 的信息,请参阅命令行接口

概述

Nodemon 的编程 API 允许您将其文件监控和进程管理功能集成到您自己的 Node.js 应用程序中。这使您能够创建自定义开发工具、测试运行器或任何需要监控文件并响应更改的应用程序。

来源:lib/nodemon.js24-251 lib/monitor/index.js1-5

基本用法

要以编程方式使用 nodemon,首先需要引入(require)该模块,然后使用配置选项调用它。

来源:lib/nodemon.js24-251

API 参考

主函数

来源:lib/nodemon.js24-251 lib/nodemon.js253-315

主函数 nodemon(settings) 接受以下任一参数:

  1. 包含命令行参数的字符串(类似于从终端使用 nodemon)
  2. 包含配置选项的对象

此函数返回 nodemon 实例,允许进行方法链式调用。

来源:lib/nodemon.js24-45

实例方法

主函数返回的 nodemon 实例公开了以下方法:

方法描述
restart()手动触发受监控应用程序的重启
on(event, handler)注册事件监听器
once(event, handler)注册一次性事件监听器
emit(event, [...args])通过内部事件总线发出事件
removeAllListeners([event])移除所有监听器或特定事件的所有监听器
reset(done)重置 nodemon 的内部状态

来源:lib/nodemon.js253-298

属性

属性描述
config提供对完整配置对象的访问
stdout捕获受监控应用程序标准输出的流(启用时)
stderr捕获受监控应用程序标准错误的流(启用时)

来源:lib/nodemon.js314-315 lib/nodemon.js224-231

配置选项

当使用对象调用主 nodemon() 函数时,您可以提供以下配置选项:

选项类型描述
script字符串要运行和监控的主脚本
exec字符串运行脚本的可执行文件(默认为 'node')
watch数组要监控更改的目录或文件
ignore数组监控更改时要忽略的模式
ext字符串逗号分隔的文件扩展名列表,用于监控
env对象要传递给脚本的环境变量
verbose布尔值是否输出详细日志
stdin布尔值nodemon 是否应附加到标准输入 (stdin)
stdout布尔值nodemon 是否应捕获标准输出 (stdout)(false 启用编程访问)
signal字符串用于重启应用程序的信号(默认值:'SIGUSR2')
events对象在 nodemon 事件上运行的自定义脚本
restartable字符串启用 stdin 时手动触发重启的按键序列

来源:lib/nodemon.js80-246

事件系统

Nodemon 的编程 API 建立在事件驱动架构之上。您可以订阅这些事件以响应应用程序生命周期中的更改。

来源:lib/nodemon.js259-280 test/lib/require.test.js87-103

可用事件

事件描述参数
start应用程序启动时发出-
restart应用程序重启时发出触发重启的文件数组
crash应用程序崩溃时发出-
exit应用程序退出时发出-
quitnodemon 即将退出时发出-
lognodemon 记录日志时发出包含日志消息的对象
config:update配置更新时发出-
stdout在标准输出 (stdout) 上接收到数据时发出数据缓冲区
stderr在标准错误 (stderr) 上接收到数据时发出数据缓冲区
readable当 stdout/stderr 流可用时发出-

来源:lib/nodemon.js259-280

访问标准 I/O

通过将 stdout 选项设置为 false 并监听相应的事件,您可以访问子进程的标准 I/O 流。

来源:lib/nodemon.js224-231

常见用例

自定义文件监控规则

您可以使用 watchignore 选项指定自定义文件监控规则。

来源:lib/rules/add.js15-89 lib/nodemon.js170-189

自定义事件处理程序

您可以将自定义处理程序附加到应用程序生命周期中的各种事件。

来源:lib/nodemon.js259-275 test/lib/require.test.js51-83

手动重启触发

您可以编程方式触发重启。

来源:lib/nodemon.js253-257 test/lib/require.test.js87-103

与构建工具集成

Nodemon 可以与构建工具集成,以创建自定义开发工作流程。

来源:lib/nodemon.js24-251 lib/nodemon.js253-257

内部架构

来源:lib/nodemon.js24-251 lib/monitor/index.js1-5

以编程方式使用 nodemon 时,它遵循以下一般流程:

  1. 使用设置调用主 nodemon() 函数
  2. 从设置中加载和处理配置
  3. 监控系统被初始化并启动
  4. 根据配置规则设置文件监控器
  5. 子进程被生成
  6. 当检测到文件更改或触发手动重启时,事件流经系统以重启进程。

与命令行接口 (CLI) 使用的比较

功能CLI 使用编程 API
配置通过命令行标志、nodemon.json通过对象参数
事件处理有限(信号、控制台)全面的事件系统
I/O 访问通过控制台通过流进行编程访问
集成独立使用可集成到其他工具中
控制限于通过配置的键进行重启完全编程控制

来源:lib/nodemon.js24-251 lib/nodemon.js259-280

最佳实践

  1. 链式方法调用以创建可读配置

  2. 当您需要清理资源时,请使用 reset 方法

  3. 控制标准输出/标准错误以与其他日志系统集成

来源:lib/nodemon.js224-231 lib/nodemon.js296-298 test/lib/require.test.js25-26