CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-rslib--core

The Rsbuild-based library development tool.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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';

docs

build.md

cli.md

configuration.md

index.md

tile.json