lib.id

  • 类型: string
  • 默认值: undefined

指定库的 ID。ID 用于标识库,在使用 CLI 的 --lib 标志构建特定库时,可以使用有意义的 id 进行构建。

TIP

Rslib 在底层使用了 Rsbuild 的 environments 特性来在单个项目中构建多个库。lib.id 将被用作生成的 Rsbuild environment 的键名。

默认值

默认情况下,Rslib 会自动为每个库生成一个格式为 ${format}${index} 的 ID。其中,format 是指当前库在 format 中指定的值,index 表示该库在所有相同格式的库中的序号。如果当前格式只有一个库,则 index 为空;否则,从 0 开始递增。

例如,esm 格式的库将从 esm0 开始,依次为 esm1esm2 等。相比之下,cjsumd 格式不包含 index 部分,因为每种格式只有一个库。

rslib.config.ts
export default {
  lib: [
    { format: 'esm' }, // id is `esm0`
    { format: 'cjs' }, // id is `cjs`
    { format: 'esm' }, // id is `esm1`
    { format: 'umd' }, // id is `umd`
    { format: 'esm' }, // id is `esm2`
  ],
};

自定义 ID

你可以通过在库配置中设置 id 字段来指定一个可读性更强或更有意义的库 ID。用户指定的 ID 将优先使用,而其余的将继续使用默认生成的 ID。

例如,my-lib-amy-lib-bmy-lib-c 将作为指定库的 ID,而其余的库将使用生成的默认 ID。

rslib.config.ts
export default {
  lib: [
    { format: 'esm', id: 'my-lib-a' }, // ID is `my-lib-a`
    { format: 'cjs', id: 'my-lib-b' }, // ID is `my-lib-b`
    { format: 'esm' },                 // ID is `esm0`
    { format: 'umd', id: 'my-lib-c' }, // ID is `my-lib-c`
    { format: 'esm' },                 // ID is `esm1`
  ],
};

然后你可以通过运行以下命令来单独构建 my-lib-amy-lib-b

npx rslib build --lib my-lib-a --lib my-lib-b
NOTE

每个库的 ID 必须是唯一的,否则会导致错误。