close
logo
Rslib
指南
配置
博客
English
简体中文
指南
配置
博客
English
简体中文
logo
Rslib
配置总览

Lib 配置

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 配置

logLevel
resolve
source
output
tools
plugins
📝 在 GitHub 上编辑此页
上一页lib.syntax
下一页lib.banner

#lib.externalHelpers

  • 类型: boolean
  • 默认值: false

是否从 @swc/helpers 导入 SWC 辅助函数而不是内联它们。

默认情况下,输出的 JavaScript 文件可能需要辅助函数来支持目标环境或输出格式,这些辅助函数会被内联到需要它们的文件中。

当 externalHelpers 设置为 true 时,输出的 JavaScript 将从外部模块 @swc/helpers 导入辅助函数,这有助于减少最终包中的重复辅助代码,减小包体积。

NOTE

请确保在 package.json 的 dependencies 字段中声明并安装了 @swc/helpers。

#示例

以下面的代码为例:

index.ts
export default class FOO {
  get bar() {
    return;
  }
}

当 externalHelpers 禁用时,输出的 JavaScript 将内联辅助函数。

rslib.config.ts
export default {
  lib: [
    {
      syntax: 'es5',
      externalHelpers: false,
    },
  ],
};

以下是输出的 JavaScript 文件,高亮部分是内联的辅助函数:

index.js
function _class_call_check(instance, Constructor) {
  if (!(instance instanceof Constructor))
    throw new TypeError('Cannot call a class as a function');
}
function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ('value' in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}
function _create_class(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}
var src_FOO = /*#__PURE__*/ (function () {
  'use strict';
  function FOO() {
    _class_call_check(this, FOO);
  }
  _create_class(FOO, [
    {
      key: 'bar',
      get: function () {},
    },
  ]);
  return FOO;
})();
export { src_FOO as default };

当启用 externalHelpers 时,输出的 JavaScript 将从外部模块 @swc/helpers 导入辅助函数。

rslib.config.ts
export default {
  lib: [
    {
      syntax: 'es5',
      externalHelpers: true,
    },
  ],
};

以下是输出的 JavaScript 文件,高亮部分是导入的辅助函数:

index.js
import { _ } from '@swc/helpers/_/_class_call_check';
import { _ as _create_class_ } from '@swc/helpers/_/_create_class';
var src_FOO = /*#__PURE__*/ (function () {
  'use strict';
  function FOO() {
    _(this, FOO);
  }
  _create_class_(FOO, [
    {
      key: 'bar',
      get: function () {},
    },
  ]);
  return FOO;
})();
export { src_FOO as default };