getPublicPath

  • 类型:string
  • 是否必填:否
  • 默认值:undefined
  • 生效条件:仅当设置了 exposes 时生效

用于设置动态 publicPath。值为「字符串化的函数」或「字符串化的 return 表达式」。当消费者加载该生产者时,会通过 new Function 执行此字符串以获取返回值,并将其作为该模块静态资源的 publicPath 前缀。例如,部署的项目动态下发 cdn_prefix,可以设置:

  • 函数形式:function(){ return window.cdn_prefix }
  • return 形式:return "https:" + window.navigator.cdn_host + "/resource/app/"

下面的示例中,设置了 getPublicPath。在其他消费者加载该生产者时,将会通过 new Function 的方式执行 getPublicPath 字符串以获取值,并把返回值作为该模块的 publicPath 静态资源前缀

rspack.config.ts
module.exports = {
  plugins: [
    new ModuleFederationPlugin({
      name: 'provider',
      exposes: {
        './Button': './src/components/Button.tsx',
      },
      // ...
      getPublicPath: `return "https:" + window.navigator.cdn_host + "/resource/app/"`,
    }),
  ],
};