close
logo
Rslib
Guide
Config
Blog
English
简体中文
Guide
Config
Blog
English
简体中文
logo
Rslib
Config Overview

Lib Configurations

lib.format
lib.bundle
lib.autoExtension
lib.autoExternal
lib.redirect
lib.syntax
lib.externalHelpers
lib.banner
lib.footer
lib.dts
lib.shims
lib.id
lib.umdName
lib.outBase

Rsbuild Configurations

logLevel
resolve
source
output
tools
plugins
📝 Edit this page on GitHub
Previous Pagelib.autoExtension
Next Pagelib.redirect

#lib.autoExternal

INFO

autoExternal is a specific configuration for bundle mode. It will not take effect in bundleless mode (set lib.bundle to false) since deps will not be bundled in bundleless mode.

  • Type:
type AutoExternal =
  | boolean
  | {
      dependencies?: boolean;
      optionalDependencies?: boolean;
      devDependencies?: boolean;
      peerDependencies?: boolean;
    };
  • Default:
    • true when format is cjs or esm
    • false when format is umd or mf

Whether to automatically externalize dependencies of different dependency types and do not bundle them.

#Object type

#autoExternal.dependencies

  • Type: boolean
  • Default: true

Whether to automatically externalize dependencies of type dependencies.

#autoExternal.optionalDependencies

  • Type: boolean
  • Default: true

Whether to automatically externalize dependencies of type optionalDependencies.

#autoExternal.peerDependencies

  • Type: boolean
  • Default: true

Whether to automatically externalize dependencies of type peerDependencies.

#autoExternal.devDependencies

  • Type: boolean
  • Default: false

Whether to automatically externalize dependencies of type devDependencies.

#Default value

The default value of autoExternal is true, which means the following dependency types will not be bundled:

  • dependencies
  • optionalDependencies
  • peerDependencies

And the following dependency types will be bundled:

  • devDependencies

This configuration is equivalent to the following object type:

export default {
  lib: [
    {
      format: 'esm',
      autoExternal: {
        dependencies: true,
        optionalDependencies: true,
        peerDependencies: true,
        devDependencies: false,
      },
    },
  ],
};

#Example

#Customize externalized dependency types

To disable the processing of a specific type of dependency, you can configure autoExternal as an object like this:

rslib.config.ts
export default {
  lib: [
    {
      format: 'esm',
      autoExternal: {
        dependencies: false,
        peerDependencies: false,
      },
    },
  ],
};

#Disable default behavior

If you want to disable the default behavior, you can set autoExternal to false:

rslib.config.ts
export default {
  lib: [
    {
      format: 'esm',
      autoExternal: false,
    },
  ],
};

For more details about handling third-party dependencies, please refer to Handle Third-party Dependencies.