For AI agents: the complete documentation index is available at /next/zh/llms.txt, the full documentation bundle is available at /next/zh/llms-full.txt, and this page is available as Markdown at /next/zh/api/packages/external-bundle-rsbuild-plugin/interfaces/PluginExternalValue.md.
Lynx
  • 简体中文
  • 接口: PluginExternalValue

    pluginExternalBundle 接受的 external bundle 引用。

    继承

    • Omit<ExternalValue, "url">

    属性

    async?

    optional async?: boolean

    是否异步加载资源。

    默认值

    true

    继承自

    Omit.async


    background?

    optional background?: LayerOptions

    后台 layer 的选项。

    默认值

    undefined

    继承自

    Omit.background


    bundlePath?

    optional bundlePath?: string

    基于运行时 public path 解析的 bundle 路径。

    当 external bundle 需要作为当前项目的一部分被产出或提供服务时,优先使用该选项而非 url。pluginExternalBundle 可以利用这些信息管理本地 bundle 文件,同时运行时会使最终 URL 与当前生效的 publicPath 保持一致。

    重写了

    Omit.bundlePath


    libraryName?

    optional libraryName?: string | string[]

    库的名称。与 https://webpack.js.org/configuration/externals/#string 相同。

    默认情况下,库名称与 externals 的 key 相同。例如:

    配置

    ExternalsLoadingPlugin({
      externals: {
        lodash: {
          url: '……',
        }
      }
    })

    将生成以下 webpack externals 配置:

    externals: {
      lodash: 'lynx[Symbol.for("__LYNX_EXTERNAL_GLOBAL__")].lodash',
    }

    如果一个 external bundle 包含多个模块,应设置相同的库名称,以确保它只被加载一次。例如:

    ExternalsLoadingPlugin({
      externals: {
        lodash: {
          libraryName: 'Lodash',
          url: '……',
        },
        'lodash-es': {
          libraryName: 'Lodash',
          url: '……',
        }
      }
    })

    将生成以下 webpack externals 配置:

    externals: {
      lodash: 'lynx[Symbol.for("__LYNX_EXTERNAL_GLOBAL__")].Lodash',
      'lodash-es': 'lynx[Symbol.for("__LYNX_EXTERNAL_GLOBAL__")].Lodash',
    }

    可以传入数组来指定 external 的子路径。与 https://webpack.js.org/configuration/externals/#string-1 相同。例如:

    ExternalsLoadingPlugin({
      externals: {
        preact: {
          libraryName: ['ReactLynx', 'Preact'],
          url: '……',
          async: false,
        },
      }
    })

    将生成以下 webpack externals 配置:

    externals: {
      preact: 'lynx[Symbol.for("__LYNX_EXTERNAL_GLOBAL__")].ReactLynx.Preact',
    }

    在默认的 async: true 下,会改为生成一个 promise external,它会在库的 promise resolve 之后再取出子路径:

    externals: {
      preact: 'promise Promise.resolve(lynx[Symbol.for("__LYNX_EXTERNAL_GLOBAL__")]["ReactLynx"]).then(function (m) { return m["Preact"]; })',
    }

    默认值

    undefined

    示例

    `Lodash`

    继承自

    Omit.libraryName


    mainThread?

    optional mainThread?: LayerOptions

    主线程 layer 的选项。

    默认值

    undefined

    继承自

    Omit.mainThread


    retries?

    optional retries?: number

    获取外部 bundle 超时(response.code === -2)时的额外重试次数。

    默认值

    0

    继承自

    Omit.retries


    timeout?

    optional timeout?: number

    等待时间,单位为毫秒。

    默认值

    2000

    继承自

    Omit.timeout


    url?

    optional url?: string

    Bundle 的 URL。

    仅当 external bundle 位于当前构建产物之外、且不应由 pluginExternalBundle 产出或提供服务时才使用该选项。

    已被弃用

    建议优先使用 bundlePath,它通过运行时 public path 解析,并允许上层工具管理资源产出。

    除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。