lib.externalHelpers

  • 类型: boolean
  • 默认值: false

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

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

externalHelpers 设置为 true 时,输出的 JavaScript 将从外部模块 @swc/helpers 导入辅助函数。

NOTE

请确保在 package.jsondependencies 字段中声明并安装了 @swc/helpers

示例

以下面的代码为例:

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

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

rslib.config.ts
1export default {
2  lib: [
3    {
4      syntax: 'es5',
5      externalHelpers: false,
6    },
7  ],
8};

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

index.js
1function _class_call_check(instance, Constructor) {
2  if (!(instance instanceof Constructor))
3    throw new TypeError('Cannot call a class as a function');
4}
5function _defineProperties(target, props) {
6  for (var i = 0; i < props.length; i++) {
7    var descriptor = props[i];
8    descriptor.enumerable = descriptor.enumerable || false;
9    descriptor.configurable = true;
10    if ('value' in descriptor) descriptor.writable = true;
11    Object.defineProperty(target, descriptor.key, descriptor);
12  }
13}
14function _create_class(Constructor, protoProps, staticProps) {
15  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
16  if (staticProps) _defineProperties(Constructor, staticProps);
17  return Constructor;
18}
19var src_FOO = /*#__PURE__*/ (function () {
20  'use strict';
21  function FOO() {
22    _class_call_check(this, FOO);
23  }
24  _create_class(FOO, [
25    {
26      key: 'bar',
27      get: function () {},
28    },
29  ]);
30  return FOO;
31})();
32export { src_FOO as default };

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

rslib.config.ts
1export default {
2  lib: [
3    {
4      syntax: 'es5',
5      externalHelpers: true,
6    },
7  ],
8};

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

index.js
1import * as __WEBPACK_EXTERNAL_MODULE__swc_helpers_class_call_check__ from '@swc/helpers/_/_class_call_check';
2import * as __WEBPACK_EXTERNAL_MODULE__swc_helpers_create_class__ from '@swc/helpers/_/_create_class';
3var src_FOO = /*#__PURE__*/ (function () {
4  'use strict';
5  function FOO() {
6    (0, __WEBPACK_EXTERNAL_MODULE__swc_helpers_class_call_check__._)(this, FOO);
7  }
8  (0, __WEBPACK_EXTERNAL_MODULE__swc_helpers_create_class__._)(FOO, [
9    {
10      key: 'bar',
11      get: function () {},
12    },
13  ]);
14  return FOO;
15})();
16export { src_FOO as default };
目录