Nuxt CLI

来源
Nuxt CLI 可在命令行中运行、构建和检查你的 Nuxt 应用

@nuxt/cli 就是 nuxt 命令:它会运行开发服务器、为生产环境构建你的应用、创建文件、管理模块并回答有关项目的问题。它是 nuxt 的依赖项,因此 Nuxt 项目已经包含它。

Terminal
npx nuxt dev

该二进制文件安装为 nuxt,同时也会安装为 nuxinuxi-ngnuxt-cli,以兼容较旧的配置。创建新项目是一个单独的包,create-nuxt,这样就可以在没有项目可供安装的情况下运行它。

nuxi 是第三个包:一个没有依赖项的独立 CLI,用于在项目外运行命令或全局安装。

要求

CLI 可在 Node v22.19+、v24.11+ 或 v26+ 上运行,并会在这些版本上原生导入 TypeScript 配置。不支持 Nuxt 2 和 @nuxt/bridge

运行命令

在项目内,包管理器会运行项目所依赖的版本:

Terminal
pnpm nuxt dev
npm exec nuxt dev
yarn nuxt dev
bun nuxt dev

在项目外或全局安装后,npx nuxi 会运行相同的命令。如果项目中安装了 @nuxt/cli,它会将每条命令交给项目中的 @nuxt/cli,因此实际运行的代码与其所在的 Nuxt 版本匹配,而不是与你机器上的版本匹配。当项目中没有 CLI、项目中的副本早于 v3.26,或项目中的副本不识别该命令时,它会回退到自身捆绑的命令,因此即使项目固定使用较旧的版本,也仍然可以获得较新的命令。

全局选项

--cwd 可以在命令名称之前或之后传递,这在 monorepo 中很有用:

Terminal
npx nuxt --cwd apps/web dev

接受 ROOTDIR 位置参数的命令会将显式的 --cwd 视为对它的覆盖。任何命令上的 --help 都会打印其参数和选项,而 --version 会打印 CLI 版本。

拼写错误的命令和标志

无法识别的命令会与现有命令进行匹配,无法识别的标志会与该命令声明的标志进行匹配。在交互式终端中,系统会提供可供替代运行的更正内容;否则会将其报告为警告,因此拼写错误的标志不再看起来像是一个只是没有生效的标志。

项目命令

如果 CLI 没有提供某个命令,它会在项目中查找名为 nuxt-<command> 的二进制文件,因此依赖项可以添加自己的命令。这就是 nuxt build-module 的工作方式:它会运行由 @nuxt/module-builder 安装的 nuxt-build-module 二进制文件。

Shell 补全

nuxt complete <shell> 会打印补全脚本,该功能由 @bomb.sh/tab 提供支持。它可以补全命令、标志以及某些标志值:nuxt dev 的端口和主机、nuxt build --preset 的 Nitro 预设,以及日志级别。

npx nuxt complete zsh > "${fpath[1]}/_nuxt"

同时也支持 powershell,而 create-nuxt complete <shell> 有自己的脚本,可以补全 starter 模板名称。

如果安装了 tab 的包管理器补全,也可以通过包管理器使用补全(pnpm nuxt <Tab>)。

更新通知

CLI 每天会在后台检查是否存在更新版本的 Nuxt,如果有,则会在命令完成后显示简短提示,建议运行 nuxt upgradelatest dist-tag 会从 .npmrc 中配置的 registry 读取,并缓存在用户级别的 .nuxtrc 中。

对于预发布版本不会显示提示;同一 minor 版本内的补丁版本也不会显示提示,除非你至少落后了五个补丁版本。在 CI、StackBlitz 中,以及输出不是终端时,会跳过检查。

设置 NUXT_IGNORE_UPDATE_CHECK=1NO_UPDATE_NOTIFIER=1 可跳过本次运行的检查,或者将 updateCheck.enabled=false 添加到用户级别的 .nuxtrc 中,以永久退出。

网络和代理

访问网络的命令(安装模块、搜索模块、下载模板、检查更新)会报告请求失败的原因,而不是原始错误,并建议最可能有效的重试方式。在会重新签署 TLS 流量的代理后面时,这意味着需要设置 NODE_EXTRA_CA_CERTS,并将其指向你所在组织的根证书。

只有在设置了 NODE_USE_ENV_PROXY 时,Node 才会读取代理环境变量;CLI 会将该设置继续传递给它生成的进程,因此由 nuxt add 启动的包管理器安装会使用与你相同的代理配置。

预发布版本

main 上的每次提交都会发布到 nightly channel:

Terminal
npm install -D @nuxt/cli-nightly
npx @nuxt/cli-nightly dev

create-nuxt-nightly 会使用它创建项目,而 npm create nuxt@latest -- --nightly 会针对 Nuxt nightly channel 创建项目。

单个 pull request 的构建版本会由 pkg.pr.new 发布,并从 pull request 本身链接过去,这是在正式发布前检查修复是否有效的最快方式。