# CLI > Nitro 提供了 `nitro` 命令,用于开发、构建、预览和部署项目。 当 `nitro` 作为项目依赖安装时,通过包管理器运行它(`npx nitro`、`pnpm nitro`、`yarn nitro`、`bun nitro`、……),或者将其添加到 `package.json` 脚本中: ```json [package.json] { "scripts": { "dev": "nitro dev", "build": "nitro build", "preview": "nitro preview" } } ``` 然后按照[快速开始](/docs/quick-start)指南中的说明使用 `npm run dev`、`pnpm dev` 等命令。 ::tip 每个命令都支持使用 `--help` 查看其参数概览(例如 `nitro build --help`),而 `nitro --version` 会打印已安装的 Nitro 版本。 :: 所有命令都接受项目根目录,可以将其作为位置参数(`nitro build ./my-app`),也可以使用 `--dir` 标志(推荐)。默认使用当前目录。 ::note 将 Nitro 用作 [Vite 插件](/docs/vite)?建议使用 Vite CLI(`vite dev`、`vite build`、`vite preview`);Nitro 开发服务器不支持 Vite builder。 :: ## `nitro dev` 启动支持热重载的开发服务器。 ```sh npx nitro dev [--dir ] [--port ] [--host ] ``` | 标志 | 描述 | | --- | --- | | `--dir` | 项目根目录。 | | `--port` | 要监听的端口。 | | `--host` | 要监听的主机名。 | 开发服务器会监视 Nitro 配置:对 `runtimeConfig` 或 `routeRules` 的更改会热重载,而其他配置更改会触发开发服务器完全重启。 **示例:** ```sh npx nitro dev --port 4000 --host 0.0.0.0 ``` ## `nitro build` 为生产环境构建项目。Nitro 会准备构建目录、复制公共资源、预渲染所有已配置的路由,并将服务器打包到输出目录(默认为 `.output/`)。 ```sh npx nitro build [--dir ] [--preset ] [--minify] [--builder ] [--compatibility-date ] ``` | 标志 | 描述 | | --- | --- | | `--dir` | 项目根目录。 | | `--preset` | 要构建的部署[preset](/deploy)(也可以使用 `NITRO_PRESET` 环境变量)。 | | `--minify` | 压缩输出,覆盖 preset 默认设置。使用 `--no-minify` 可禁用压缩。 | | `--builder` | 要使用的打包器:`rollup`、`rolldown` 或 `vite`(也可以使用 `NITRO_BUILDER` 环境变量)。 | | `--compatibility-date` | 用于 preset 兼容性的日期(也可以使用 `NITRO_COMPATIBILITY_DATE` 环境变量)。 | **示例:** ```sh npx nitro build --preset cloudflare_module ``` ### `NITRO_PRESET` 与 `--preset` 两者都会设置部署 preset,而 `--preset` 标志的优先级高于 `NITRO_PRESET` 环境变量。在部署平台和 CI 中,环境变量非常方便,因为你通常无法更改构建命令: ```sh NITRO_PRESET=cloudflare_module npm run build ``` ## `nitro preview` 启动本地服务器,以预览生产环境构建输出。 ```sh npx nitro preview [--dir ] [--port ] [--host ] ``` | 标志 | 描述 | | --- | --- | | `--dir` | 项目根目录。 | | `--port` | 要监听的端口。 | | `--host` | 要监听的主机名。 | **示例:** ```sh npx nitro build npx nitro preview ``` ## `nitro deploy` 构建项目,然后运行所选 preset 的部署命令。 ```sh npx nitro deploy [--dir ] [--prebuilt] [build flags...] [-- ] ``` | 标志 | 描述 | | --- | --- | | `--prebuilt` | 跳过构建步骤,部署现有的构建输出。 | 所有 [`nitro build`](#nitro-build) 标志(`--preset`、`--minify`、`--builder`、`--compatibility-date`、……)也会被接受,并应用于构建步骤。`--` 后的任何参数都会附加到底层部署命令(或者作为 `args` 传递给函数部署命令)。 ::note 并非所有 preset 都支持 `nitro deploy`。如果所选 preset 未定义部署命令(或未找到构建输出),命令会报错失败。在这种情况下,请使用其他 preset,在 Nitro 配置中配置部署命令,或按照提供商的[部署指南](/deploy)手动部署。 :: **示例:** ```sh # 使用 cloudflare_module preset 构建,然后运行 wrangler deploy npx nitro deploy --preset cloudflare_module # 部署现有构建,而不重新构建 npx nitro deploy --prebuilt ``` ## `nitro task` 操作 [Nitro 任务](/docs/tasks)(实验性功能)。 ::important 任务支持处于实验阶段,需要使用 `experimental.tasks` 标志。`task` 子命令针对**当前正在运行的开发服务器**执行,因此请在 `nitro dev` 运行时于第二个终端中执行这些命令。详情请参阅[任务文档](/docs/tasks)。 :: ### `nitro task list` 列出可用任务及其描述。 ```sh npx nitro task list [--dir ] ``` | 标志 | 描述 | | --- | --- | | `--dir` | 项目根目录。 | ### `nitro task run` 按名称运行任务,也可以选择传入 JSON 负载。 ```sh npx nitro task run [--dir ] [--payload ] ``` | 标志 | 描述 | | --- | --- | | `--dir` | 项目根目录。 | | `--payload` | 解析为 JSON 字符串,并作为负载传递给任务。 | **示例:** ```sh npx nitro task run db:migrate --payload '{"force": true}' ``` ## `nitro docs` 从终端浏览 Nitro 文档(由 [mdzilla](https://github.com/pi0/mdzilla) 提供支持),也可以选择从特定页面路径开始。 ```sh npx nitro docs [page] ```