命令行工具

Rsbuild 内置了一个轻量的命令行工具,包含 dev、build 等命令。

rsbuild -h

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

npx rsbuild -h

输出如下:

Usage: rsbuild <command> [options]

Options:
  -V, --version      output the version number
  -h, --help         display help for command

Commands:
  dev [options]      starting the dev server
  build [options]    build the app for production
  preview [options]  preview the production build locally
  inspect [options]  inspect the Rspack and Rsbuild configs
  help [command]     display help for command

rsbuild dev

rsbuild dev 命令用于启动一个本地开发服务器,对源代码进行开发模式编译。

Usage: rsbuild dev [options]

Options:
  -c --config <config>  指定配置文件路径,可以为相对路径或绝对路径
  -r --root <root>      指定项目根目录,可以是绝对路径或者相对于 cwd 的路径
  -m --mode <mode>      指定构建模式,可以是 `development``production``none`
  -o, --open [url]      启动时是否在浏览器中打开页面
  --port <port>         设置 Rsbuild Server 监听的端口号
  --host <host>         指定 Rsbuild Server 启动时监听的 host
  --env-mode <mode>     指定 env 模式来加载 `.env.[mode]` 文件
  --env-dir <dir>       指定目录来加载 `.env` 文件
  --environment <name>  指定需要构建的 environment 名称
  -h, --help            显示命令帮助

打开页面

通过 --open 选项可以在启动 dev server 时自动打开页面,等同于将 server.open 设置为 true

rsbuild dev --open

--open 选项也支持指定需要打开的 URL 地址,比如:

rsbuild dev --open http://localhost:3000/foo

--open 选项也可以缩写为 -o

rsbuild dev -o
TIP

当同时使用 server.open--open 时,--open 的优先级更高。

rsbuild build

rsbuild build 命令默认会在 dist/ 目录下构建出可用于生产环境的产物。

Usage: rsbuild build [options]

Options:
  -c --config <config>  指定配置文件路径,可以为相对路径或绝对路径
  -r --root <root>      指定项目根目录,可以是绝对路径或者相对于 cwd 的路径
  -m --mode <mode>      指定构建模式,可以是 `development``production``none`
  -w --watch            开启 watch 模式, 监听文件变更并重新构建
  --env-mode <mode>     指定 env 模式来加载 `.env.[mode]` 文件
  --env-dir <dir>       指定目录来加载 `.env` 文件
  --environment <name>  指定需要构建的 environment 名称
  -h, --help            显示命令帮助

rsbuild preview

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

Usage: rsbuild preview [options]

Options:
  -c --config <config>  指定配置文件路径,可以为相对路径或绝对路径
  -r --root <root>      指定项目根目录,可以是绝对路径或者相对于 cwd 的路径
  -m --mode <mode>      指定构建模式,可以是 `development``production``none`
  -o, --open [url]      启动时是否在浏览器中打开页面
  --port <port>         设置 Rsbuild Server 监听的端口号
  --host <host>         指定 Rsbuild Server 启动时监听的 host
  --env-mode <mode>     指定 env 模式来加载 `.env.[mode]` 文件
  --env-dir <dir>       指定目录来加载 `.env` 文件
  --environment <name>  指定需要构建的 environment 名称
  -h, --help            显示命令帮助
TIP

preview 命令仅用于本地预览,请勿将它用于生产服务器,因为它不是为此而设计的。

rsbuild inspect

rsbuild inspect 命令用于查看项目的 Rsbuild 配置以及 Rspack 配置。

Usage: rsbuild inspect [options]

Options:
  -c --config <config>  指定配置文件路径,可以为相对路径或绝对路径
  -r --root <root>      指定项目根目录,可以是绝对路径或者相对于 cwd 的路径
  -m --mode <mode>      指定构建模式,可以是 `development``production``none`
  --output <output>     指定在 dist 目录下输出的路径 (default: "/")
  --verbose             在结果中展示函数的完整内容
  --env-mode <mode>     指定 env 模式来加载 `.env.[mode]` 文件
  --env-dir <dir>       指定目录来加载 `.env` 文件
  --environment <name>  指定需要构建的 environment 名称
  -h, --help            显示命令帮助

当你在项目根目录下执行命令 npx rsbuild inspect 后,会在项目的 dist/.rsbuild 目录生成以下文件:

  • rsbuild.config.mjs: 表示在构建时使用的 Rsbuild 配置。
  • rspack.config.web.mjs: 表示在构建时使用的 Rspack 配置。
➜ npx rsbuild inspect

Inspect config succeed, open following files to view the content:

  - Rsbuild Config: /project/dist/.rsbuild/rsbuild.config.mjs
  - Rspack Config (web): /project/dist/.rsbuild/rspack.config.web.mjs

指定模式

默认情况下,inspect 命令会输出开发模式的配置,你可以添加 --mode production 选项来输出生产模式的配置:

rsbuild inspect --mode production

完整内容

默认情况下,inspect 命令会省略配置对象中的函数内容,你可以添加 --verbose 选项来输出函数的完整内容:

rsbuild inspect --verbose

多种产物类型

如果当前项目有多种产物类型,比如同时构建了浏览器产物和 Node.js 产物,那么会在 dist/.rsbuild 目录生成多份 Rspack 配置文件。

➜ npx rsbuild inspect

Inspect config succeed, open following files to view the content:

  - Rsbuild Config (web): /project/dist/.rsbuild/rsbuild.config.web.mjs
  - Rsbuild Config (node): /project/dist/.rsbuild/rsbuild.config.node.mjs
  - Rspack Config (web): /project/dist/.rsbuild/rspack.config.web.mjs
  - Rspack Config (node): /project/dist/.rsbuild/rspack.config.node.mjs