Rslib core
本章节介绍了 Rslib 提供的一些核心方法。
createRslib
创建一个 Rslib 实例对象。
- 类型:
- 示例:
选项
createRslib 的第一个参数是一个 options 对象,你可以传入以下选项:
cwd:当前执行构建的根路径,默认值为process.cwd()config:Rslib 配置对象。参考 配置总览 查看所有可用的配置项。loadEnv:是否调用 loadEnv 方法来加载环境变量,并通过 source.define 定义为全局变量。
异步加载配置
config 也可以是一个异步函数,你可以通过该函数来动态加载 Rslib 配置,并进行一些自定义操作。
加载环境变量
createRslib 的 loadEnv 选项可以帮助你调用 loadEnv 方法来加载环境变量:
传入 loadEnv: true 会自动完成如下步骤:
- 调用
loadEnv方法来加载环境变量。 - 添加 source.define 配置,将
loadEnv返回的publicVars定义为全局变量。 - 监听
.env文件的变化,在文件变化时重新构建或重新启动开发服务器,并使构建缓存失效。 - 在关闭构建或开发服务器时,自动调用
loadEnv返回的cleanup方法来清除环境变量。
你也可以传入 loadEnv 方法的选项,比如:
loadConfig
加载 Rslib 配置文件。
- 类型:
- 示例:
如果 cwd 目录下不存在 Rslib 配置文件,loadConfig 方法的返回值为 { content: {}, filePath: null }。
指定配置文件
使用 path 选项加载 my-config.ts 配置文件:
传入 meta 对象
加载配置文件,并传入自定义的 meta 对象:
在 defineConfig 定义的配置函数中,你可以通过 meta 对象访问到 foo 变量:
loadEnv
加载 .env 文件,并返回所有以 prefixes 开头的环境变量。
用法与 Rsbuild 相同,详见 loadEnv -- Rsbuild。
- Rslib CLI 会自动调用
loadEnv()方法,如果你在使用 Rslib CLI,可以通过--env-mode选项来设置mode参数。 - createRslib 的
loadEnv选项会帮助你调用loadEnv()方法,并处理相关操作。
mergeRslibConfig
用于合并多份 Rslib 配置对象。
mergeRslibConfig 函数接收多个配置对象作为参数,它会将每一个配置对象进行深层合并,自动将多个函数项合并为顺序执行的函数数组,返回一个合并后的配置对象。
- 类型:
基础示例
合并规则
对于 lib 对象数组中的每一项,会根据 id 字段处理合并:
- 具有相同
id的对象进行深度合并 - 没有
id的对象会追加到结果数组末尾 - 有
id的对象按首次出现的顺序排列
其他配置字段的合并规则与 mergeRsbuildConfig 相同。
rspack
如果你需要访问 @rspack/core 导出的 API 或插件,可以直接从 @rslib/core 中引用 rspack 对象,无须额外安装 @rspack/core 包。
- 类型:
Rspack - 示例:
- 参考 Rspack 插件 和 Rspack JavaScript API 了解可用的 Rspack API。
- 不推荐手动安装
@rspack/core包,因为这可能与 Rslib 依赖的版本不一致。
rsbuild
如果你需要访问 @rsbuild/core 导出的 API,可以直接从 @rslib/core 中引用 rsbuild 对象,无须额外安装 @rsbuild/core 包。
- 示例:
参考 Rsbuild core 了解可用的 Rsbuild API。
version
当前使用的 @rslib/core 的版本。
- 类型:
string - 示例:
