本文档提供了 Nodemon 命令行界面 (CLI) 的全面指南。它解释了如何从命令行使用 Nodemon,所有可用的选项和参数,以及它们如何被处理。有关配置文件信息,请参阅配置系统。
Nodemon 提供了一个灵活的命令行界面,允许开发者指定要监控的文件、要执行的命令以及如何自定义监控行为。CLI 是大多数用户与 Nodemon 交互的主要方式。
来源:lib/cli/parse.js22-93 lib/cli/index.js41-49
Nodemon 可以通过以下几种方式调用:
nodemon [options] [script.js] [args]
package.json#main 或 index.js 中指定的脚本nodemon server.js)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 | -I | Nodemon 直接将标准输入传递给子进程 |
--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 会在以下位置搜索配置:
nodemon.json 文件(或通过 --config 指定的其他文件)package.json 中的 nodemonConfig 属性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