> For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt.

# 命令行工具

[@rspack/cli](https://npmjs.com/package/@rspack/cli) 是 Rspack 的命令行工具，它提供了多种命令来简化 Rspack 的使用。

- 如果你没有安装过 `@rspack/cli`，请先阅读 [快速开始](/zh/guide/start/quick-start.md) 章节。
- 如果你使用的是 Rsbuild，请参考 [Rsbuild CLI](https://rsbuild.rs/zh/guide/basic/cli) 章节。

:::warning 和 webpack-cli 的兼容性
`@rspack/cli` 与 `webpack-cli` 并不是完全兼容的，它们会有一些使用方式的差异。
:::

## 查看所有命令

如果你需要查看所有可用的 CLI 命令，请在项目目录中运行以下命令：

```bash
npx rspack -h
```

## 公共选项

Rspack CLI 提供了一些公共选项，可以用于所有命令：

| 选项                     | 描述                                                                                                             |
| ---------------------- | -------------------------------------------------------------------------------------------------------------- |
| `-c, --config [value]` | 指定配置文件路径，详见 [指定配置文件](/zh/config/index.md#指定配置文件)                                                               |
| `--configLoader`       | 指定配置文件加载器，可以是 `auto`、`jiti` 或 `native`，默认是 `auto`                                                              |
| `--configName`         | 指定配置文件名称                                                                                                       |
| `--env <env>`          | 传递给配置函数的环境变量，例如 `--env production --env foo=bar`                                                               |
| `--nodeEnv`            | 设置 `process.env.NODE_ENV` 的值，`rspack dev` 默认是 `development`，`rspack build` 和 `rspack preview` 默认是 `production` |
| `-h, --help`           | 显示帮助信息                                                                                                         |
| `-v, --version`        | 显示版本号                                                                                                          |

:::tip
Rspack CLI 的所有选项都支持使用 `camelCase`（驼峰命名）和 `kebab-case`（短横线命名），例如 `--configLoader` 和 `--config-loader` 都是有效的。
:::

## rspack build

`rspack build` 用于运行 Rspack 构建，将会在 [output.path](/zh/config/output.md#outputpath) 目录下生成构建后的文件。

```bash
npx rspack build  # 默认读取 `rspack.config.*` 配置文件
```

`rspack build` 可以缩写为 `rspack b`：

```bash
npx rspack b
```

使用 `-c` 或 `--config` 选项来指定配置文件路径：

```bash
npx rspack build -c ./your.config.js
```

完整的选项如下：

```
rspack build

Options:
      --entry        entry file                                          [array]
  -o, --outputPath   output path dir                                    [string]
  -m, --mode         mode                                               [string]
  -w, --watch        watch                            [boolean] [default: false]
      --env          env passed to config function                       [array]
  -d, --devtool      set source map style for debugging                  [string]
      --json [path]  emit stats json, optionally to the specified path
```

## rspack dev

`rspack dev` 用于运行 Rspack 开发服务器，将会在本地启动一个开发服务器，监听文件变化并自动刷新浏览器。

:::info 必需依赖
`rspack dev` 命令需要安装 [@rspack/dev-server](https://www.npmjs.com/package/@rspack/dev-server)。如果尚未安装，请运行：


```sh [npm]
npm add @rspack/dev-server -D
```

```sh [yarn]
yarn add @rspack/dev-server -D
```

```sh [pnpm]
pnpm add @rspack/dev-server -D
```

```sh [bun]
bun add @rspack/dev-server -D
```

```sh [deno]
deno add npm:@rspack/dev-server -D
```

:::

```bash
npx rspack dev
```

使用 `-c` 或 `--config` 选项来指定配置文件路径：

```bash
npx rspack dev -c ./your.config.js
```

`rspack dev` 的别名为 `rspack serve` 或 `rspack s`：

```bash
npx rspack s
npx rspack serve
```

你可以通过 `--open`、`--open <value>` 或 `--no-open` 在命令行中覆盖 [`devServer.open`](/zh/config/dev-server.md#devserveropen)。

```bash
npx rspack dev --open
npx rspack dev --open /my-page
npx rspack dev --no-open
```

完整的选项如下：

```
rspack dev

Options:
      --entry        entry file                                          [array]
  -o, --outputPath   output path dir                                    [string]
  -m, --mode         mode                                               [string]
  -w, --watch        watch                            [boolean] [default: false]
      --env          env passed to config function                       [array]
  -d, --devtool      set source map style for debugging                  [string]
      --hot          enables hot module replacement
      --port         allows to specify a port to use                    [number]
      --host         allows to specify a hostname to use                [string]
      --open [value] open browser on server start; pass --no-open to disable, or --open <url> to open a specific URL
```

## rspack preview

`rspack preview` 用于在本地预览生产模式构建的产物, 注意你需要提前执行 `rspack build` 命令构建出产物。

:::info 必需依赖
`rspack preview` 命令需要安装 [@rspack/dev-server](https://www.npmjs.com/package/@rspack/dev-server)。如果尚未安装，请运行：


```sh [npm]
npm add @rspack/dev-server -D
```

```sh [yarn]
yarn add @rspack/dev-server -D
```

```sh [pnpm]
pnpm add @rspack/dev-server -D
```

```sh [bun]
bun add @rspack/dev-server -D
```

```sh [deno]
deno add npm:@rspack/dev-server -D
```

:::

```bash
npx rspack preview
```

完整的选项如下：

```
rspack preview [dir]

Positionals:
  dir  directory want to preview                                        [string]

Options:
      --publicPath  static resource server path                         [string]
      --port        preview server port                                 [number]
      --host        preview server host                                 [string]
      --open        open browser                                       [boolean]
      --server      Configuration items for the server.                 [string]
```
