#Rslib types
本章节介绍了 Rslib 提供的一些类型定义。
#RslibInstance
Rslib 实例的类型,对应 createRslib 方法的返回值。
import type { type RslibInstance = {
getRslibConfig(): Readonly<RslibConfig>;
onAfterCreateRsbuild(callback: OnAfterCreateRsbuildFn): void;
build(options?: BuildOptions): Promise<BuildResult>;
inspectConfig(options?: InspectConfigOptions): Promise<InspectConfigResult>;
startMFDevServer(options?: StartMFDevServerOptions): Promise<StartServerResult>;
}
RslibInstance } from '@rslib/core';
let let rslib: RslibInstance rslib : type RslibInstance = {
getRslibConfig(): Readonly<RslibConfig>;
onAfterCreateRsbuild(callback: OnAfterCreateRsbuildFn): void;
build(options?: BuildOptions): Promise<BuildResult>;
inspectConfig(options?: InspectConfigOptions): Promise<InspectConfigResult>;
startMFDevServer(options?: StartMFDevServerOptions): Promise<StartServerResult>;
}
RslibInstance ;#RslibConfig
Rslib 配置的类型。
import type { RslibConfig } from '@rslib/core';
const const config: RslibConfig config : RslibConfig = {
RslibConfig.lib: LibConfig[] lib : [
{
LibConfig.format?: Format | undefinedOutput format for the generated JavaScript files.
@defaultValue'esm'@seehttps://rslib.rs/config/lib/format format : 'esm',
},
],
};你也可以引用 Rslib 配置中各个字段的类型定义:
import type {
type AutoExternal = boolean | {
dependencies?: boolean;
optionalDependencies?: boolean;
peerDependencies?: boolean;
devDependencies?: boolean;
}
AutoExternal ,
type BannerAndFooter = {
js?: string;
css?: string;
dts?: string;
}
BannerAndFooter ,
type Dts = boolean | {
bundle?: boolean | {
bundledPackages?: string[];
};
distPath?: string;
build?: boolean;
abortOnError?: boolean;
autoExtension?: boolean;
alias?: Record<string, string>;
tsgo?: boolean;
}
Dts ,
type Format = "esm" | "cjs" | "umd" | "mf" | "iife" Format ,
LibConfig,
type Redirect = {
js?: JsRedirect;
style?: StyleRedirect;
asset?: AssetRedirect;
dts?: DtsRedirect;
}
Redirect ,
type Shims = {
cjs?: {
"import.meta.url"?: boolean;
};
esm?: {
__filename?: boolean;
__dirname?: boolean;
require?: boolean;
};
}
Shims ,
type Syntax = EcmaScriptVersion | string[] Syntax ,
} from '@rslib/core';#RsbuildPlugin
定义 Rsbuild 插件的结构和行为。
Rsbuild 插件提供了一种标准化的方式,通过生命周期钩子和修改配置来扩展构建能力。
import type { type RsbuildPlugin = {
name: string;
apply?: RsbuildPluginApply;
setup: (api: RsbuildPluginAPI) => MaybePromise<void>;
enforce?: "pre" | "post";
pre?: string[];
post?: string[];
remove?: string[];
}
Defines the structure and behavior of an Rsbuild plugin.
Rsbuild plugins provide a standardized way to extend build functionality through
lifecycle hooks and configuration modifications.
@exampleconst myPlugin = (): RsbuildPlugin => ({
name: 'my-plugin',
setup(api) {
api.onBeforeBuild(() => {
console.log('Build starting...');
});
}
});
RsbuildPlugin } from '@rslib/core';
const const myPlugin: RsbuildPlugin myPlugin : type RsbuildPlugin = {
name: string;
apply?: RsbuildPluginApply;
setup: (api: RsbuildPluginAPI) => MaybePromise<void>;
enforce?: "pre" | "post";
pre?: string[];
post?: string[];
remove?: string[];
}
Defines the structure and behavior of an Rsbuild plugin.
Rsbuild plugins provide a standardized way to extend build functionality through
lifecycle hooks and configuration modifications.
@exampleconst myPlugin = (): RsbuildPlugin => ({
name: 'my-plugin',
setup(api) {
api.onBeforeBuild(() => {
console.log('Build starting...');
});
}
});
RsbuildPlugin = {
name: stringThe name of the plugin, a unique identifier.
name : 'my-plugin',
setup: (api: RsbuildPluginAPI) => MaybePromise<void>The setup function of the plugin, which can be an async function.
This function is called once when the plugin is initialized.
@paramapi provides the context info, utility functions and lifecycle hooks. setup () {},
};#CreateRslibOptions
createRslib 方法的入参类型。
import type { type CreateRslibOptions = {
cwd?: string;
config?: RslibConfig | (() => Promise<RslibConfig>);
loadEnv?: boolean | LoadEnvOptions;
}
CreateRslibOptions } from '@rslib/core';#BuildOptions
rslib.build 方法的入参类型。
import type { type BuildOptions = CommonOptions & {
watch?: boolean;
}
BuildOptions } from '@rslib/core';#StartMFDevServerOptions
rslib.startMFDevServer 方法的入参类型。
import type { type StartMFDevServerOptions = {
lib?: string[];
}
StartMFDevServerOptions } from '@rslib/core';#InspectConfigOptions
rslib.inspectConfig 方法的入参类型。
import type { type InspectConfigOptions = CommonOptions & {
mode?: RsbuildMode;
verbose?: boolean;
outputPath?: string;
writeToDisk?: boolean;
}
InspectConfigOptions } from '@rslib/core';#Rspack
包含 @rspack/core 导出的所有类型,比如 Rspack.Configuration。
import type { import Rspack Rspack } from '@rslib/core';
const const rspackConfig: Rspack.RspackOptions rspackConfig : import Rspack Rspack .type Configuration = {
name?: Rspack.Name;
dependencies?: Rspack.Dependencies;
extends?: string | string[];
entry?: Rspack.Entry;
output?: Rspack.Output;
target?: Rspack.Target;
mode?: Rspack.Mode;
experiments?: Rspack.Experiments;
externals?: Rspack.Externals;
externalsType?: Rspack.ExternalsType;
externalsPresets?: Rspack.ExternalsPresets;
infrastructureLogging?: Rspack.InfrastructureLogging;
... 20 more ...;
lazyCompilation?: boolean | Rspack.LazyCompilationOptions;
}
Configuration for Rspack
Configuration = {};#Rsbuild
包含 @rsbuild/core 导出的所有类型,比如 Rsbuild.ToolsConfig。
查看 @rsbuild/core - src/index.ts 了解 Rsbuild 所有导出的类型。
import type { import Rsbuild Rsbuild } from '@rslib/core';
const const rsbuildConfig: Rsbuild.ToolsConfig rsbuildConfig : import Rsbuild Rsbuild .export ToolsConfig ToolsConfig = {};#其他
查看 @rslib/core - src/index.ts 了解所有导出的类型。
