Rsbuild Types
本章节描述了 Rsbuild 提供的一些类型定义。
RsbuildInstance
Rsbuild 实例的类型,对应 createRsbuild 方法的返回值。
import type { RsbuildInstance } from '@rsbuild/core';
let rsbuild: RsbuildInstance;
RsbuildConfig
Rsbuild 配置的类型。
import type { RsbuildConfig } from '@rsbuild/core';
const config: RsbuildConfig = {
// ...
};
你也可以引用 Rsbuild 配置中各个字段的类型定义:
import type {
DevConfig,
HtmlConfig,
ToolsConfig,
SourceConfig,
ServerConfig,
OutputConfig,
SecurityConfig,
PerformanceConfig,
ModuleFederationConfig,
} from '@rsbuild/core';
NormalizedConfig
Rsbuild 配置归一化后的类型,对应 getNormalizedConfig 方法的返回值。
import type { NormalizedConfig } from '@rsbuild/core';
const config: NormalizedConfig = api.getNormalizedConfig();
你也可以引用归一化后的 Rsbuild 配置中各个字段的类型定义:
import type {
NormalizedDevConfig,
NormalizedHtmlConfig,
NormalizedToolsConfig,
NormalizedSourceConfig,
NormalizedServerConfig,
NormalizedOutputConfig,
NormalizedSecurityConfig,
NormalizedPerformanceConfig,
NormalizedModuleFederationConfig,
} from '@rsbuild/core';
NormalizedEnvironmentConfig
指定环境下的 Rsbuild 归一化配置类型,对应 getNormalizedConfig({ environment })
方法的返回值。
import type { NormalizedEnvironmentConfig } from '@rsbuild/core';
const config: NormalizedEnvironmentConfig = api.getNormalizedConfig({
environment,
});
RsbuildContext
Rsbuild 实例中 context 属性的类型定义。
import type { RsbuildContext } from '@rsbuild/core';
const context: RsbuildContext = rsbuild.context;
RsbuildPlugin
Rsbuild 插件的类型。
import type { RsbuildPlugin } from '@rsbuild/core';
const myPlugin: RsbuildPlugin = {
name: 'my-plugin',
setup() {},
};
RsbuildPluginAPI
Rsbuild 插件中,setup 函数传入的 api 对象的类型。
import type { RsbuildPluginAPI } from '@rsbuild/core';
const myPlugin = {
name: 'my-plugin',
setup(api: RsbuildPluginAPI) {},
};
RsbuildTarget
Rsbuild 构建产物的类型。
import type { RsbuildTarget } from '@rsbuild/core';
EnvironmentContext
Environment context 是一个只读对象,提供一些和当前环境有关的上下文信息。
type EnvironmentContext = {
name: string;
browserslist: string[];
config: NormalizedEnvironmentConfig;
distPath: string;
entry: RsbuildEntry;
htmlPaths: Record<string, string>;
tsconfigPath?: string;
};
environment.name
当前环境的唯一名称,用于区分和定位环境,对应于 environments 配置中的 key。
environment.browserslist
项目兼容的目标浏览器范围。详情可参考 设置浏览器范围.
environment.config
归一化后当前环境的 Rsbuild 配置
type NormalizedEnvironmentConfig = DeepReadonly<{
dev: NormalizedDevConfig;
html: NormalizedHtmlConfig;
tools: NormalizedToolsConfig;
source: NormalizedSourceConfig;
server: NormalizedServerConfig;
output: NormalizedOutputConfig;
plugins?: RsbuildPlugins;
security: NormalizedSecurityConfig;
performance: NormalizedPerformanceConfig;
moduleFederation?: ModuleFederationConfig;
}>;
environment.distPath
构建产物输出目录的绝对路径,对应 RsbuildConfig 中的 output.distPath.root
配置项。
environment.entry
构建入口对象,对应 source.entry 选项。
type RsbuildEntry = Record<string, string | string[] | EntryDescription>;
environment.htmlPaths
HTML 产物的路径信息。该 API 会返回一个对象,对象的 key 为 entry 名称,value 为 HTML 文件在产物目录下的相对路径。
type htmlPaths = Record<string, string>;
environment.tsconfigPath
tsconfig.json 文件的绝对路径,若项目中不存在 tsconfig.json 文件,则为 undefined。
type TsconfigPath = string | undefined;
CreateRsbuildOptions
createRsbuild 方法的入参类型。
import type { CreateRsbuildOptions } from '@rsbuild/core';
InspectConfigOptions
rsbuild.inspectConfig 方法的入参类型。
import type { InspectConfigOptions } from '@rsbuild/core';
Rspack
包含 @rspack/core
导出的所有类型,比如 Rspack.Configuration
import type { Rspack } from '@rsbuild/core';
const rspackConfig: Rspack.Configuration = {};
Others
- OnExitFn
- OnAfterBuildFn
- OnAfterCreateCompilerFn
- OnAfterStartDevServerFn
- OnAfterStartProdServerFn
- OnBeforeBuildFn
- OnBeforeStartDevServerFn
- OnBeforeStartProdServerFn
- OnBeforeCreateCompilerFn
- OnCloseDevServerFn
- OnDevCompileDoneFn
- ModifyRsbuildConfigFn
- ModifyBundlerChainFn
- ModifyRspackConfigFn
- TransformFn,
- TransformHandler
- more...