remoteType

remoteType specifies the external module type for remote containers, determining how the runtime loads remote entries.

  • Type: ExternalsType
  • Required: No
  • Default: 'script'
type ExternalsType =
  | 'var' | 'module' | 'assign'
  | 'this' | 'window' | 'self' | 'global'
  | 'commonjs' | 'commonjs2' | 'commonjs-module' | 'commonjs-static'
  | 'amd' | 'amd-require'
  | 'umd' | 'umd2'
  | 'jsonp' | 'system'
  | 'promise' | 'import' | 'module-import'
  | 'script' | 'node-commonjs';

Usage

remoteType controls how webpack/rspack loads remote container scripts at runtime. Common values:

ValueDescription
'script'Loads via <script> tag (default for browser)
'var'Remote container is exposed as a global variable
'commonjs2'Loads via require() (Node.js)
'node-commonjs'Node.js CommonJS format
'import'Loads via dynamic import()
'promise'Loads via a Promise wrapper
'module'ESM module loading
Tip

In most cases you do not need to set remoteType manually — the default 'script' works for browser environments. Node.js server-side scenarios typically require 'commonjs2' or 'node-commonjs'.

  • Example
// Browser (default)
new ModuleFederationPlugin({
  name: '@demo/host',
  remoteType: 'script',
  remotes: {
    provider: 'provider@http://localhost:3001/remoteEntry.js',
  },
});

// Node.js server-side
new ModuleFederationPlugin({
  name: '@demo/node-host',
  remoteType: 'commonjs2',
  remotes: {
    provider: 'provider@http://localhost:3001/remoteEntry.js',
  },
});