Angular Module Federation运行后未找到生成的mfe1RemoteEntry.js文件
原因说明
ng serve底层依赖webpack-dev-server提供开发服务,所有编译后的产物默认仅存储在内存中,不会写入本地磁盘,因此文件资源管理器无法检索到mfe1RemoteEntry.js以及对应的chunk文件,终端打印的生成日志仅代表编译流程完成,不代表产物已落盘。- 你提供的webpack配置本身符合Module Federation的使用规范,无配置错误问题。
解决方案
开发阶段直接访问内存产物
ng serve mfe1启动成功后,远程入口文件可以直接通过服务地址访问,无需本地读取。比如mfe1服务启动在4201端口,直接访问http://localhost:4201/mfe1RemoteEntry.js即可获取文件,宿主应用配置远程入口时直接填该地址即可正常加载微应用。
强制开发环境产物落盘
如果确实需要在本地文件系统查看生成的产物,可以修改angular.json中mfe1项目的serve配置:
找到projects > mfe1 > architect > serve > options节点,新增"writeToDisk": true参数,配置示例如下:
{ "projects": { "mfe1": { "architect": { "serve": { "options": { "port": 4201, "writeToDisk": true } } } } } }
修改配置后重启ng serve mfe1,所有编译产物会写入项目的dist目录,你可以在dist/mfe1路径下找到mfe1RemoteEntry.js文件。
生产构建验证
如果是要验证打包结果,直接执行ng build mfe1命令,打包完成后所有产物都会自动写入dist目录,可直接找到对应远程入口文件。
内容的提问来源于stack exchange,提问作者Hary
相关产品推荐
相关产品推荐

