0

假设我有以下模块联合设置:

new ModuleFederationPlugin({
  name: 'shell',
  filename: 'shellDefinition.js',
  shared: {
      'my-shared-lib': { singleton: true, eager: true, requiredVersion: '^1.0.0' }
  },
})

这让我与遥控器共享如下导入:

import { myThing } from 'my-shared-lib';

但是,如果我想共享一个深度导入,比如下面的呢?

import myThing from 'my-shared-lib/things';

使用上述设置执行此操作似乎会在主机和任何遥控器中创建模块的单独实例,这也许是可以理解的,因为我们在技术上并未共享深度导入。但是,有没有办法让模块联盟这样做?

4

1 回答 1

0

您应该能够将深度导入为:

shared: {
  'my-shared-lib': { singleton: true, eager: true, requiredVersion: '^1.0.0' }
  'my-shared-lib/things': { singleton: true, eager: true, requiredVersion: '^1.0.0' }
}

它们仍然是两个独立的块,但将由多个遥控器/主机共享。

于 2021-02-21T01:44:38.187 回答