将 Datepicker 添加到模块联合中的远程组件时出错

Error when adding Datepicker to a remote component in module federation

我正在尝试使用模块联合在远程组件中使用日期选择器,但收到了附加的错误消息。

尝试了故障排除步骤

再生产

重现步骤:

环境

Angular: 12.3.3

CDK/Material: 12.2.13

浏览器:Microsoft Edge

操作系统(例如Windows、macOS、Ubuntu):Windows 10

该错误表明您的应用未提供必要的服务DateAdapter

The angular material's docs说明我们需要从根组件导入MatNativeDateModule;或为其提供替代方案。 (看看他们的实例,看看他们如何推荐你使用它)

在您的 git 存储库中,您正在从使用日期选择器的组件中导入它,这可能是您在实际应用中遇到的问题。

顺便说一句,您的 git 存储库对我来说工作正常,没有控制台错误:

解决方案是在 webpack 配置中添加“@angular/material/datepicker”作为共享包。

我遇到的第二个错误是 mat=form-field 不包含 MatFormFieldControl。通过将 MatInputModule 导入远程模块和 Shell 应用程序模块来解决这个问题。

随附的存储库现在可以使用了。任何人都可以通过查看所做的更改来检查更改。

我已经在 shell 和容器应用程序的 web-pack.config.ts 中添加了模块。在 shell 和容器应用程序的 module.ts 中。然后它对我有用:)

    // '@angular/material/core': { singleton: true, strictVersion: true, requiredVersion: "12.2.13" },
    // '@angular/cdk': { singleton: true, strictVersion: true, requiredVersion: "12.2.13" },
    // '@angular/material/datepicker': { singleton: true, strictVersion: true, requiredVersion: "12.2.13" },