For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt, and this page is available as Markdown at /zh/guide/api-reference.md.
close
  • 简体中文
  • API 参考

    Rstack CLI 提供统一的配置 API,并通过专用子路径重导出 Rsbuild、Rslib、Rstest 和 Rslint 的公开 API。建议优先从这些子路径导入,而不是直接从各工具的 core 包导入,以统一依赖入口,并确保 API 与 Rstack CLI 集成的工具版本匹配。

    导入路径

    导入路径内容使用场景
    rstackRstack CLI 配置 API注册各项工具配置
    rstack/config配置加载器及其类型加载公共配置和项目配置
    rstack/app@rsbuild/core 的公开 API构建应用及扩展 Rsbuild
    rstack/lib@rslib/core 的公开 API构建库及扩展 Rslib
    rstack/test@rstest/core 的公开 API编写测试及配置测试项目
    rstack/lint@rslint/core 的公开 API使用 Rslint 预设和插件
    rstack/typesRsbuild 与 Rslib 共用的项目类型为应用和库的源码提供类型
    rstack/test/globalsRstest 全局 API 声明启用全局测试 API 类型
    rstack/test/importMetaimport.meta.rstest 的 ImportMeta 声明为源码内测试提供类型

    主入口

    define

    从 rstack 导入 define,用于在 rstack.config.ts 中注册各项工具配置;详细用法请参阅配置 API。

    RstackConfig

    RstackConfig 是公共配置的类型。所有字段均为可选,只需填写需要共享的配置。

    各工具字段接受与对应 define.*() 方法相同的配置,例如 fmt 对应 define.fmt()。

    shared.ts
    import type { RstackConfig } from 'rstack';
    
    export const sharedConfig: RstackConfig = {
      fmt: {
        singleQuote: true,
      },
    };

    还可以通过 extends 字段继承其他公共配置,该字段的类型为 readonly RstackConfig[]。

    team.ts
    import type { RstackConfig } from 'rstack';
    import { sharedConfig } from './shared.ts';
    
    export const teamConfig: RstackConfig = {
      extends: [sharedConfig],
      fmt: {
        printWidth: 100,
      },
    };

    重导出

    以下工具子路径均会重导出对应 core 包的公开 API。通过这些入口导入,可以统一依赖入口,并确保 API 与 Rstack CLI 集成的工具版本匹配。

    rstack/app

    rstack/app 重导出 @rsbuild/core 的全部公开 API,包括用于创建和控制 Rsbuild 实例的 API。

    import { createRsbuild, mergeRsbuildConfig } from 'rstack/app';

    具体用法请参阅 Rsbuild 核心 API。

    rstack/lib

    rstack/lib 重导出 @rslib/core 的全部公开 API,包括用于创建 Rslib 实例和合并 Rslib 配置的 API。

    import { createRslib, mergeRslibConfig } from 'rstack/lib';

    具体用法请参阅 Rslib 核心 API。

    rstack/test

    rstack/test 重导出 @rstest/core 的全部公开 API,包括用于定义测试、编写断言、模拟模块和合并测试配置的 API。

    import { describe, expect, test } from 'rstack/test';

    测试 API 请参阅 Rstest 运行时 API,配置辅助 API 请参阅 Rstest 核心 API。

    如需了解更多测试相关用法,请参阅测试。

    rstack/lint

    rstack/lint 重导出 @rslint/core 的全部公开 API,包括 JavaScript 和 TypeScript 预设以及框架插件。

    import { js, reactPlugin, ts } from 'rstack/lint';

    可用的预设和插件请参阅 Rslint 规则和预设。

    加载配置

    loadRstackConfig()

    使用 rstack/config 导出的 loadRstackConfig(),可以在代码中加载 Rstack 配置:

    import { loadRstackConfig } from 'rstack/config';
    
    const { configs, filePath, dependencies } = await loadRstackConfig({
      cwd: process.cwd(),
      configFilePath: './rstack.config.ts',
    });

    支持以下可选参数:

    • cwd:查找配置文件的目录。configFilePath 为相对路径时,也以此目录为基准。默认为当前工作目录。
    • configFilePath:配置文件路径,可以是相对路径或绝对路径。省略时,优先使用 CLI 通过 --config 指定的路径;若也未指定,则在 cwd 中按默认文件名查找配置。

    返回对象包含以下字段:

    • configs:各工具的配置对象或函数,包含项目配置及继承的公共配置。
    • filePath:加载的配置文件路径,未找到文件时为 null。
    • dependencies:加载器收集到的配置依赖路径列表。

    loadRstackConfig() 仅负责加载配置,不会执行工具配置函数。调用方仍需完成相应工具的配置解析和初始化,才能运行工具。

    rstack/config 还导出相关类型:LoadRstackConfigOptions(参数)、LoadedRstackConfig(返回值)和 RstackConfigDefinitions(工具配置)。

    TypeScript 类型

    以下纯类型入口用于为 TypeScript 项目补充环境类型声明。请仅将项目需要的入口添加到 tsconfig.json 的 compilerOptions.types 中。

    rstack/types

    rstack/types 提供 Rsbuild 与 Rslib 共用的项目级类型声明,包括 import.meta.env 和静态资源导入的类型。请使用该入口替代 @rsbuild/core/types 或 @rslib/core/types。

    tsconfig.json
    {
      "compilerOptions": {
        "types": ["rstack/types", "node"]
      }
    }

    rstack/test/globals

    rstack/test/globals 提供 test、expect 和生命周期钩子等 Rstest API 的全局声明。启用 Rstest 的 globals 选项且测试代码不显式导入这些 API 时,请添加该入口。

    tsconfig.json
    {
      "compilerOptions": {
        "types": ["rstack/test/globals", "node"]
      }
    }

    rstack/test/importMeta

    rstack/test/importMeta 为 ImportMeta 增加可选的 rstest 属性,为源码内测试中的 import.meta.rstest 提供类型支持。

    tsconfig.json
    {
      "compilerOptions": {
        "types": ["rstack/test/importMeta", "node"]
      }
    }