logologo
Guide
Practice
Configuration
Plugins
Showcase
Blog
Ecosystem
Module Federation Examples
Practical Module Federation
Zephyr Cloud
Nx
简体中文
English
Guide
Practice
Configuration
Plugins
Showcase
Blog
Module Federation Examples
Practical Module Federation
Zephyr Cloud
Nx
简体中文
English
logologo
Overview
Name
Filename
Remotes
Exposes
Shared
runtimePlugins
Get Public Path
Implementation
DTS
Dev
Manifest
shareStrategy
experiments
Edit this page on GitHub
Previous PageFilename
Next PageExposes

#Remotes

  • Type: PluginRemoteOptions
  • Required: No
  • Default: undefined
  • Usage: Used for consuming remote modules in Module Federation
TIP

A parameter unique to consumers. If remotes is set, it can be considered that this is a consumer.

The PluginRemoteOptions type is as follows:

type ModuleFederationInfo = string;
interface PluginRemoteOptions {
  [remoteAlias: string]: ModuleFederationInfo;
}
  • remoteAlias is the name actually used for reference by the consumer and can be configured as needed. For example, if remoteAlias is set to demo, then the consumption method would be import xx from 'demo'.
  • ModuleFederationInfo is composed of ModuleFederation name + @ + ModuleFederation entry
    • ModuleFederation name is the name set by the producer
    • entry can be either mf-manifest.json or remoteEntry.js
    • When entry is mf-manifest.json, it has the following additional capabilities:
      • Dynamic module type hints
      • Resource preloading
      • Chrome devtool debugging tool
module.exports = {
  plugins: [
    new ModuleFederationPlugin({
      name: 'host',
      // The `remotes` below defines two remotes, named `manifest-provider` for the project started on port 3011 and `js-entry-provider` for the project started on port 3012
      remotes: {
        'manifest-provider':
          'manifest_provider@http://localhost:3011/mf-manifest.json',
        'js-entry-provider':
          'js_entry_provider@http://localhost:3012/remoteEntry.js',
      },
    }),
  ],
};