close

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 | undefined

Output 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.

@example
const 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.

@example
const myPlugin = (): RsbuildPlugin => ({
  name: 'my-plugin',
  setup(api) {
    api.onBeforeBuild(() => {
      console.log('Build starting...');
    });
  }
});
RsbuildPlugin
= {
name: string

The 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 了解所有导出的类型。