命令行工具
Rslib 内置了一个轻量级的命令行工具,包含 rslib build、rslib inspect 等命令。
查看所有命令
如果你需要查看所有可用的 CLI 命令,请在项目目录中运行以下命令:
输出如下:
Usage:
$ rslib <command> [options]
Commands:
build 构建用于生产环境的产物
inspect 检查 Rslib 项目的 Rsbuild 配置和 Rspack 配置
mf-dev 为 Module Federation 格式的库启用 Rsbuild 开发服务器
公共选项
Rslib CLI 提供了一些公共选项,可以用于所有命令:
选项 | 描述 |
---|
-c, --config <config> | 指定配置文件路径,可以为相对路径或绝对路径,详见 指定配置文件 |
--config-loader <loader> | 指定配置文件加载方式(auto | jiti | native ),详见 指定加载方式 |
--env-dir <dir> | 指定目录来加载 .env 文件,详见 Rsbuild - Env 目录 |
--env-mode <mode> | 指定 env 模式来加载 .env.[mode] 文件,详见 Rsbuild - Env 模式 |
-h, --help | 显示命令帮助 |
--lib <id> | 指定运行命令的库(可重复,例如:--lib esm --lib cjs ),查看 lib.id 了解如何获取或设置库的 ID |
--log-level <level> | 指定日志级别(info | warn | error | silent ),详见 logLevel |
-r, --root <root> | 指定项目根目录,可以是绝对路径或者相对于 cwd 的路径 |
rslib build
rslib build
命令默认会在 dist/
目录下输出构建产物。
Usage:
$ rslib build
Options:
-w, --watch 开启 watch 模式,监听文件变更并重新构建
--entry <entry> 设置入口文件或模式(可重复),例如:--entry="src/*" 或 --entry="main=src/main.ts"
--dist-path <dir> 指定根输出目录
--bundle 启用打包模式(使用 --no-bundle 关闭)
--format <format> 指定输出格式(esm | cjs | umd | mf | iife)
--syntax <syntax> 指定语法目标,例如:--syntax=es2018 或 --syntax=["node 14", "Chrome 103"]
--target <target> 指定运行时目标(web | node)
--dts 生成声明文件(使用 --no-dts 关闭)
--external <pkg> 将依赖加入 external(可重复)
--minify 压缩构建产物(使用 --no-minify 关闭)
--clean 构建前清理输出目录(使用 --no-clean 关闭)
--auto-extension 控制自动扩展名补全(使用 --no-auto-extension 关闭)
--auto-external 控制自动依赖 external 化(使用 --no-auto-external 关闭)
--tsconfig <path> 指定使用的 tsconfig(相对于项目根目录)
环境变量
Rslib 支持在构建过程中向代码中注入环境变量或表达式,这对于区分运行环境、替换常量值等场景很有帮助。
你可以查看 Rsbuild - 环境变量 了解更多详细信息。
NOTE
- 当 format 设置为
esm
或 cjs
时,process.env.NODE_ENV
会在构建产物中被保留。
- 当 format 设置为
mf
或 umd
时,process.env.NODE_ENV
将被替换,以确保构建产物可以在浏览器中运行。
rslib inspect
rslib inspect
命令用于查看 Rslib 项目的 Rsbuild 配置和 Rspack 配置。
Usage:
$ rslib inspect
Options:
--output <output> 指定检查内容输出路径(默认:".rsbuild")
--verbose 在输出中显示完整的函数定义
当你在项目根目录下执行命令 npx rsbuild inspect
后,会在项目的 dist/.rsbuild
目录生成以下文件:
rsbuild.config.mjs
: 表示在构建时使用的 Rsbuild 配置。
rspack.config.web.mjs
: 表示在构建时使用的 Rspack 配置。
rslib.config.mjs
: 表示归一化后的 Rslib 配置。
➜ npx rslib inspect
Inspect config succeed, open following files to view the content:
- Rsbuild Config: /project/dist/.rsbuild/rsbuild.config.mjs
- Rspack Config (esm): /project/dist/.rsbuild/rspack.config.esm.mjs
- Rslib Config: /project/dist/.rsbuild/rslib.config.mjs
完整内容
默认情况下,inspect 命令会省略配置对象中的函数内容,你可以添加 --verbose
选项来输出函数的完整内容:
多种输出格式
如果当前项目同时有多种输出格式,比如 ESM 产物和 CJS 产物,那么会在 dist/.rsbuild
目录生成多份 Rspack 配置文件。
➜ npx rslib inspect
Inspect config succeed, open following files to view the content:
- Rsbuild Config (esm): /project/dist/.rsbuild/rsbuild.config.esm.mjs
- Rsbuild Config (cjs): /project/dist/.rsbuild/rsbuild.config.cjs.mjs
- Rspack Config (esm): /project/dist/.rsbuild/rspack.config.esm.mjs
- Rspack Config (cjs): /project/dist/.rsbuild/rspack.config.cjs.mjs
- Rslib Config: /project/dist/.rsbuild/rslib.config.mjs
rslib mf-dev
rslib mf-dev
命令用于为 Module Federation 格式的库启用 Rsbuild 开发服务器。
这允许你在 host 应用中访问和调试 mf 格式的模块。