|
|
- const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin')
- const mf = require('@angular-architects/module-federation/webpack')
- const path = require('path')
- const share = mf.share
-
- const sharedMappings = new mf.SharedMappings()
- sharedMappings.register(path.join(__dirname, 'tsconfig.json'), [])
-
- module.exports = {
- output: {
- uniqueName: 'shell',
- publicPath: 'http://localhost:3000/',
- },
- optimization: {
- runtimeChunk: false,
- },
- resolve: {
- alias: {
- ...sharedMappings.getAliases(),
- },
- },
- plugins: [
- new ModuleFederationPlugin({
- remotes: {
- mfe1: 'mfe1@http://localhost:3001/remoteEntry.js',
- mfe2: 'mfe2@http://localhost:3002/remoteEntry.js',
- mfe3: 'mfe3@http://localhost:3003/remoteEntry.js',
- },
- shared: share({
- 'assets/img': { singleton: true },
- '@angular/core': {
- singleton: true,
- strictVersion: true,
- requiredVersion: 'auto',
- },
- '@angular/common': {
- singleton: true,
- strictVersion: true,
- requiredVersion: 'auto',
- },
- '@angular/common/http': {
- singleton: true,
- strictVersion: true,
- requiredVersion: 'auto',
- },
- '@angular/router': {
- singleton: true,
- strictVersion: true,
- requiredVersion: 'auto',
- },
- 'my-shared': {
- singleton: true,
- strictVersion: true,
- import: 'my-shared',
- requiredVersion: '*',
- },
- 'dynamic-core': {
- singleton: true,
- strictVersion: true,
- import: 'dynamic-core',
- requiredVersion: '*',
- },
- 'dynamic-components': {
- singleton: true,
- strictVersion: true,
- import: 'dynamic-components',
- requiredVersion: '*',
- },
- ...sharedMappings.getDescriptors(),
- }),
- }),
- sharedMappings.getPlugin(),
- ],
- }
|