nuxt dev

来源
dev 命令会在 http://localhost:3000 启动一个支持热模块替换的开发服务器
Terminal
npx nuxt dev [ROOTDIR] [--cwd=<directory>] [--logLevel=<silent|info|verbose>] [--dotenv=<path>...] [--envName=<environment>] [-e, --extends=<layer-name>...] [--inspect] [--inspect-brk] [--tui] [--clear] [-f, --fork] [-p, --port=<port>] [--takeover] [--strictPort] [-h, --host=<host>] [-o, --open] [--open.url=<url|path>] [--clipboard] [--qr] [--tunnel] [--public] [--publicURL=<url>] [--https] [--https.cert=<path>] [--https.key=<path>] [--https.pfx=<path>] [--https.passphrase=<passphrase>] [--https.validityDays=<days>] [--https.domains=<domain>...] [--profile=<verbose>]

dev 命令会在http://localhost:3000启动一个支持热模块替换的开发服务器

参数

参数描述
ROOTDIRNuxt 项目的根目录(默认:.)

选项

选项默认值描述
--cwd=<directory>指定 Nuxt 项目的根目录
--logLevel=<silent|info|verbose>指定构建时日志级别
--dotenv=<path>...要加载的 .env 文件路径,相对于根目录。可以重复指定,后面的文件具有更高优先级。
--envName=<environment>解析配置覆盖时使用的环境(构建时默认为 production,运行 dev 服务器时默认为 development
-e, --extends=<layer-name>...从 Nuxt layer 扩展
--inspect为服务于应用的进程启用 Node.js inspector(--inspect=[host:]port
--inspect-brk启用 Node.js inspector,并等待调试器连接(--inspect-brk=[host:]port
--tuitrue交互式终端 UI(固定状态面板、折叠日志和单键快捷键)
--no-tui禁用交互式终端 UI,改为直接输出日志
--clearfalse重启时清空控制台
-f, --forkruntime-dependent从 fork 的子进程中提供应用服务(在运行时支持的情况下默认开启)
--no-fork禁用 fork 模式
-p, --port=<port>要监听的端口(默认:NUXT_PORT || NITRO_PORT || PORT || nuxtOptions.devServer.port
--takeover停止当前项目中已运行的 dev 服务器并接管它
--no-takeover永不停止当前项目中已运行的 dev 服务器
--strictPortfalse如果请求的端口不可用则退出,而不是使用其他端口
-h, --host=<host>要监听的主机(默认:NUXT_HOST || NITRO_HOST || HOST || nuxtOptions.devServer?.host
-o, --openfalse在浏览器中打开 URL
--open.url=<url|path>要打开的路径或 URL,而不是 dev 服务器根目录
--clipboardfalse将 URL 复制到剪贴板
--qr为公共 URL 打印二维码(有可用公共 URL 时默认启用)
--tunnel通过 Cloudflare quick tunnel 暴露服务器
--public监听所有网络接口
--publicURL=<url>要显示的公共 URL(用于二维码和剪贴板)
--https使用本地信任的开发证书启用 HTTPS
--https.cert=<path>TLS 证书路径
--https.key=<path>TLS 密钥路径
--https.pfx=<path>PKCS#12(.p12/.pfx)密钥库路径
--https.passphrase=<passphrase>TLS 密钥或密钥库的密码
--https.validityDays=<days>生成的自签名证书的有效天数
--https.domains=<domain>...生成证书的域名。可以重复指定,也可以以逗号分隔的列表形式提供。
--profile=<verbose>分析性能,在退出时写入 V8 CPU profile 和 JSON 报告。使用 --profile=verbose 获取完整的控制台报告。

也可以通过 NUXT_PORTNITRO_PORTPORTNUXT_HOSTNITRO_HOSTHOST 环境变量设置端口和主机。

此命令会将 process.env.NODE_ENV 设置为 development

交互式终端 UI

在交互式终端中,nuxt dev 会渲染一个固定面板:服务器 URL、启动进度、当前状态和一行快捷键,其上方的日志会折叠显示。当输出不是终端输出、处于 CI 环境、连接了调试器或终端过小时,它会回退为普通的日志流。

按键操作
r重启 dev 服务器
shift-r使用已清除的缓存重启
o在浏览器中打开应用
y将服务器 URL 复制到剪贴板
i显示版本、URL、二维码和会话信息
l浏览日志历史
e打开最后一个错误处的日志
n浏览已提供服务的请求
p浏览页面和服务器路由
c清除日志、请求和控制台
?显示所有快捷键
q退出

传入 --no-tui 可改为直接输出日志,NUXT_TUI=plain 也会永久执行相同操作。NUXT_TUI=1 会在环境检查本来会将其关闭的情况下强制开启 UI,但当输出通过管道传输或重定向时除外。

普通输出提供的快捷键更少:r 重启,o 打开,u 显示 URL,qr 显示二维码,copy 复制 URL,c 清除控制台,h 获取帮助,q 退出。

重启

当 dev 服务器重新加载或重启时,它会说明触发原因;对 nuxt.config 的更改还会列出实际不同的键,因此可以区分仅由格式更改触发的重启和更改了配置的重启。重新加载会在原进程中进行;重启会替换进程,这是更改 nuxt.config 或已安装依赖所需的操作。

接管正在运行的 dev 服务器

dev 服务器会将自身记录在构建目录中的 nuxt.lock 内,因此同一项目的第二个 nuxt dev 会报告已经运行的服务器,而不是与其争抢端口。传入 --takeover 可停止它并接管其位置,或设置 NUXT_IGNORE_LOCK=1 以无论如何运行第二个服务器(不受支持)。

nuxt curlnuxt task 也是通过同一个锁文件查找要与之通信的服务器。

HTTPS

--https 会通过 TLS 提供服务:安装了 mkcert 时使用它生成本地信任的证书,否则生成自签名证书。--https.cert--https.key 使用已有证书,--https.pfx--https.passphrase 则使用 PKCS#12 密钥库。

Node 不会读取系统信任存储,因此从 Node 向使用生成证书的服务器发出的请求不会信任该证书。请将 NODE_EXTRA_CA_CERTS 设置为签发该证书的证书颁发机构。

调试

--inspect 会在实际为应用提供服务的进程上打开 Node.js inspector,--inspect-brk 则会等待调试器连接后再运行。两者都接受可选的 [host:]port

--profile 会在进程退出时,将 V8 CPU profile 写入项目中的 nuxt-dev.cpuprofile--profile=verbose 还会将完整报告打印到控制台。

构建计时、perf-report.jsonperf-trace.json 来自 Nuxt 自带的构建性能分析功能,该功能需要 Nuxt v4.4 或更高版本。在更早版本中仍会写入 CPU profile。

环境变量

变量用途
NUXT_PORTNITRO_PORTPORT按此优先级顺序监听端口
NUXT_HOSTNITRO_HOSTHOST按此优先级顺序监听主机
NUXT_TUI1 强制开启交互式 UI,plain 选择退出
NUXT_TERM_THEME当无法检测终端背景时,使用 lightdark
NUXT_IGNORE_LOCK1 忽略当前项目中已经运行的 dev 服务器
NUXT_IGNORE_UPDATE_CHECK1 停止 CLI 检查更新版本的 Nuxt