or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

build.mdcli.mdconfiguration.mdindex.md
tile.json

tessl/npm-rslib--core

The Rsbuild-based library development tool.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@rslib/core@0.12.x

To install, run

npx @tessl/cli install tessl/npm-rslib--core@0.12.0

index.mddocs/

Rslib Core

Rslib is a comprehensive library development tool built on top of Rsbuild that enables developers to create high-quality JavaScript and TypeScript libraries with minimal configuration. It provides out-of-the-box build capabilities supporting multiple output formats (ESM, CJS, UMD), compilation of diverse languages, declaration file generation, and advanced features like Module Federation.

Package Information

  • Package Name: @rslib/core
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install @rslib/core
  • Node.js: >=18.12.0
  • Homepage: https://rslib.rs

Core Imports

import { build, defineConfig, loadConfig, logger } from "@rslib/core";
import type { RslibConfig, LibConfig } from "@rslib/core";

For CommonJS:

const { build, defineConfig, loadConfig, logger } = require("@rslib/core");

Re-exported Rsbuild APIs:

import { rsbuild, rspack } from "@rslib/core";
// Or access specific Rsbuild functionality
import type { Rspack } from "@rslib/core";

Basic Usage

import { defineConfig, build, loadConfig } from "@rslib/core";

// Define configuration
export default defineConfig({
  lib: [
    {
      format: "esm",
      dts: true,
    },
    {
      format: "cjs",
    }
  ]
});

// Load and build programmatically
const { content: config } = await loadConfig();
const rsbuildInstance = await build(config);

Architecture

Rslib is built around several key components:

  • Build System: Core compilation and bundling functionality built on Rsbuild
  • Configuration System: Type-safe configuration with multiple format support and file loading
  • CLI Interface: Command-line tools for development workflow (build, dev, inspect, etc.)
  • Plugin System: Integration with Rsbuild's plugin ecosystem
  • Format Support: Multiple output formats (ESM, CJS, UMD, Module Federation, IIFE)
  • TypeScript Integration: Full TypeScript support with declaration file generation

Capabilities

Core Build Functions

Primary build functionality for compiling library projects using Rsbuild as the underlying build system.

function build(config: RslibConfig, options?: BuildOptions): Promise<RsbuildInstance>;

interface BuildOptions extends CommonOptions {
  watch?: boolean;
}

Build System

Configuration Management

Type-safe configuration definition and loading system with support for both static and function-based configurations.

function defineConfig(config: RslibConfig): RslibConfig;
function defineConfig(config: RslibConfigSyncFn): RslibConfigSyncFn;
function defineConfig(config: RslibConfigAsyncFn): RslibConfigAsyncFn;

function loadConfig(options?: LoadConfigOptions): Promise<{
  content: RslibConfig;
  filePath: string;
}>;

interface LoadConfigOptions {
  cwd?: string;
  path?: string;
  envMode?: string;
}

interface RslibConfig extends RsbuildConfig {
  lib: LibConfig[];
  output?: RslibOutputConfig;
}

Configuration

CLI Operations

Command-line interface providing development workflow tools including build, development server, inspection, and Module Federation support.

function runCli(): void;
function inspect(config: RslibConfig, options?: InspectOptions): Promise<RsbuildInstance>;
function startMFDevServer(config: RslibConfig, options?: CommonOptions): Promise<RsbuildInstance | undefined>;
function prepareCli(): void;

CLI Operations

Common Types

interface CommonOptions {
  root?: string;
  config?: string;
  envDir?: string;
  envMode?: string;
  lib?: string[];
}

interface LibConfig extends EnvironmentConfig {
  id?: string;
  format?: Format;
  bundle?: boolean;
  autoExtension?: boolean;
  autoExternal?: AutoExternal;
  syntax?: Syntax;
  dts?: Dts;
  shims?: Shims;
  redirect?: Redirect;
  umdName?: Rspack.LibraryName;
  banner?: BannerAndFooter;
  footer?: BannerAndFooter;
}

type Format = 'esm' | 'cjs' | 'umd' | 'mf' | 'iife';

Utilities

const logger: Logger;
const version: string;

Re-exported APIs

Rslib re-exports the complete Rsbuild API for advanced usage:

// Complete Rsbuild namespace
import { rsbuild } from "@rslib/core";

// Rspack types and functionality
import { rspack, type Rspack } from "@rslib/core";

// Re-exported Rsbuild types (available from @rslib/core)
interface RsbuildInstance {
  // Rsbuild instance methods
  build(options?: { watch?: boolean }): Promise<{ close(): Promise<void> }>;
  // Additional Rsbuild methods available
}

interface RsbuildConfig {
  // Base Rsbuild configuration options
  mode?: 'development' | 'production';
  root?: string;
  plugins?: RsbuildPlugin[];
  dev?: any;
  server?: any;
  environments?: Record<string, EnvironmentConfig>;
}

interface EnvironmentConfig {
  // Rsbuild environment configuration
  source?: any;
  output?: any;
  tools?: any;
  [key: string]: any;
}

type RsbuildMode = 'development' | 'production';