菜单

命令行界面

相关源文件

本文档提供了 Nodemon 命令行界面 (CLI) 的全面指南。它解释了如何从命令行使用 Nodemon,所有可用的选项和参数,以及它们如何被处理。有关配置文件信息,请参阅配置系统

概述

Nodemon 提供了一个灵活的命令行界面,允许开发者指定要监控的文件、要执行的命令以及如何自定义监控行为。CLI 是大多数用户与 Nodemon 交互的主要方式。

来源:lib/cli/parse.js22-93 lib/cli/index.js41-49

基本用法

Nodemon 可以通过以下几种方式调用:

nodemon [options] [script.js] [args]
  • 无参数:尝试运行在 package.json#mainindex.js 中指定的脚本
  • 带脚本:运行指定脚本(例如,nodemon server.js
  • 带选项:自定义 Nodemon 的行为(例如,nodemon --watch src/ server.js
  • 带脚本参数:将参数传递给您的脚本(例如,nodemon server.js --port 8080

来源:lib/cli/parse.js5-16 test/cli/parse.test.js160-162

命令行选项

Nodemon 的命令行选项分为以下几类:

配置选项

选项短期描述
--config <文件>指定备用配置文件(而非 nodemon.json)
--exitcrash崩溃时退出,允许 nodemon 与其他监视器协同工作
--ignore-i忽略特定文件或目录
--no-colors禁用彩色输出
--signal <信号>使用指定的终止信号(例如,SIGTERM)
--watch-w监视特定目录或文件
--no-update-notifier选择退出更新版本检查

来源:doc/cli/options.txt1-10 lib/cli/parse.js149-151 lib/cli/parse.js153-156 lib/cli/parse.js158-161 lib/cli/parse.js163-165 lib/cli/parse.js187-189 lib/cli/parse.js191-193 lib/cli/parse.js116-118

执行选项

选项短期描述
--on-change-only-C仅在文件更改时执行脚本,而非启动时
--cwd <目录>在运行脚本前进入指定目录
--ext-e要监视的扩展名(例如,“js,pug,hbs”)
--no-stdin-INodemon 直接将标准输入传递给子进程
--spawn强制 nodemon 使用 spawn(而非 fork)[仅限 node]
--exec <应用>-x使用指定应用执行脚本
-- <参数>告诉 nodemon 停止处理参数

来源:doc/cli/options.txt12-19 lib/cli/parse.js171-173 lib/cli/parse.js175-177 lib/cli/parse.js179-181 lib/cli/parse.js183-185 lib/cli/parse.js120-122 lib/cli/parse.js195-202 test/cli/parse.test.js93-97

监视选项

选项短期描述
--delay <n>-d延迟 n 秒后重启(防抖)
--legacy-watch-L使用轮询方式监视更改
--polling-interval-P轮询间隔毫秒数(与 -L 配合使用,默认 100)

来源:doc/cli/options.txt21-25 lib/cli/parse.js132-134 lib/cli/parse.js136-138 lib/cli/parse.js167-169 test/cli/parse.test.js375-395

信息选项

选项短期描述
--dump打印完整调试配置
--help-h显示帮助信息
--quiet-q将 nodemon 消息最小化,仅显示启动/停止信息
--version-v显示 nodemon 版本
--verbose-V显示导致重启的详细信息

来源:doc/cli/options.txt27-34 lib/cli/parse.js107-110 lib/cli/parse.js112-114 lib/cli/parse.js124-126 lib/cli/parse.js128-130 lib/cli/parse.js145-147 test/cli/parse.test.js229-244

参数处理流程

Nodemon 通过一个复杂的解析系统处理命令行参数,该系统将 nodemon 选项与脚本参数分开。

来源:lib/cli/parse.js31-93 lib/cli/index.js12-39

特殊参数处理

-- 分隔符

Nodemon 使用 -- 作为特殊分隔符,用于将 nodemon 选项与脚本参数分开。

nodemon [nodemon options] -- [script options]

这会告诉 nodemon 停止将其后面的参数作为自身的选项进行处理,而是将所有剩余参数传递给脚本。

示例

nodemon --watch src/ -- --port 3000

在此示例中,--watch src/ 是一个 nodemon 选项,而 --port 3000 则被传递给您的脚本。

来源:lib/cli/parse.js66-79 test/cli/parse.test.js143-153 test/cli/parse.test.js302-307

参数处理流程

来源:lib/cli/parse.js46-87 test/cli/parse.test.js330-333

处理带引号的参数

Nodemon 正确处理带引号的参数,允许引号内的空格被视为单个参数。

示例

nodemon --exec "python -m flask run"
nodemon --watch "source files"

CLI 解析器会识别带引号的字符串并将其保留为单个参数。

来源:lib/cli/index.js12-39 test/cli/parse.test.js120-129 test/cli/parse.test.js132-135

扩展名处理

在指定要监视的文件扩展名时,Nodemon 接受一个逗号分隔的扩展名列表。

nodemon --ext js,json,pug
nodemon -e js,json,pug

默认情况下,Nodemon 监视 .js.mjs.coffee.litcoffee.json 文件。

来源:doc/cli/help.txt15-16 lib/cli/parse.js183-185 test/cli/parse.test.js200-205

可执行脚本处理

--exec 选项允许指定哪个程序应运行您的脚本。

nodemon --exec python app.py
nodemon -x "java -jar app.jar"

对于特殊文件类型,Nodemon 有默认的可执行程序。

  • .js 文件使用 node 运行。
  • .coffee 文件使用 coffee 运行。
  • 其他扩展名可以通过配置中的 execMap 进行配置。

来源:lib/cli/parse.js171-173 test/cli/parse.test.js76-82 test/cli/parse.test.js336-344

延迟选项

--delay 选项接受

  • 纯数字(解释为秒):--delay 2.5
  • 时间规范
    • 秒:--delay 10s
    • 毫秒:--delay 2500ms

这有助于避免在许多文件同时更改时过于频繁的重启。

来源:lib/cli/parse.js167-169 lib/cli/parse.js209-229 test/cli/parse.test.js375-395

与配置文件集成

命令行选项优先于文件中的配置。Nodemon 会在以下位置搜索配置:

  1. 命令行选项
  2. 本地 nodemon.json 文件(或通过 --config 指定的其他文件)
  3. package.json 中的 nodemonConfig 属性
  4. 用户主目录下的全局 nodemon.json

来源:doc/cli/config.txt2-9 test/cli/parse.test.js186-191

示例

常见用法示例

# Basic usage - run server.js
nodemon server.js

# Watch specific directories
nodemon -w src/ -w lib/ server.js

# Watch with specific extensions
nodemon -e js,json,hbs server.js

# Run with a different executable
nodemon --exec python app.py

# Pass arguments to your script
nodemon server.js -- --port 3000 --debug

# Complex example
nodemon --watch src/ --ignore src/tests/ --delay 2.5 --exec "npm run build && node" server.js

来源:doc/cli/help.txt21-28 60-97