在我的模块联合设置中,我有一个使用一些远程应用程序的主机应用程序。它们都作为单例共享 Angular 框架依赖项。这是主机的 webpack.config.json 文件:
new ModuleFederationPlugin({
remotes: {
mf1: "mf1@http://localhost:3000/remoteEntry.js",
buy: 'buy@http://localhost:3002/remoteEntry.js',
logo: 'logo@http://localhost:3003/remoteEntry.js'
},
shared: {
"@angular/core": { singleton: true, },
"@angular/common": { singleton: true, },
"@angular/router": { singleton: true, },
},
}),
在主机和远程的内部package.json
,Angular 版本都被定义为^11.0.0
. 实际安装的版本是:host: 11.0.0
、remote 11.0.9.
:。由于内部的定义package.json
和根据语义版本兼容的实际版本,我希望 webpack 只加载最高兼容的 Angular 版本(即11.0.9
)一次。相反,我收到警告说Unsatisfied version 11.0.9 of shared singleton module @angular/core (required =11.0.0)
。从何=11.0.0
而来?为什么不承认 webpack 版本应该兼容?