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<StartDevServerResult>;
    }
    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<StartDevServerResult>;
    }
    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>;
        isolated?: boolean;
        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;
            "import.meta.dirname"?: boolean;
            "import.meta.filename"?: 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;
        ... 19 more ...;
        incremental?: Rspack.IncrementalPresets | Rspack.Incremental;
    }

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