前言
前组长龙哥研发了friday及friday-cli,friday是类似qiankun的微应用,但是功能和成果和qiankun差距还是很大(相比于single-spa只做了一个js隔离);friday-cli,见名知意,微应用的脚手架,用来快速搭建微应用的脚手架。但是这两个基建没有在公司推广,因为还不够完善,今天我就来介绍下我碰到的问题,以及解决的思路和解决完问题后的总结。
背景
自从开发微应用以来,总是有一部分人的电脑经常会出现微应用无法热更新的现象,也就是父应用的微应用模块无法热更新。最近我和另外几个同事 老陈 和 老孙 和老蒋 又出现了这个问题,每次只能打包后,使得父应用访问子应用dist文件,访问打包后的微应用。每次微应用写完一点代码必须重新打包(npm run build),效率特别慢,开发的比较痛苦,而且还找不到原因。但是有些同事的电脑是可以的,热更新正常。
我最近业务开发比较多,今晚终于能抽出几个小时时间,想排查一下这个问题。
过程
初步排查
首先我想到是windows和mac的差异,但是有一些mac和windows本的同事都会有这个问题,而且有的人是突然就不行了,又突然行了。
正常排查
其次,我找来一台没问题的mac和我不能热更新的windows进行对比,发现mac可以正常热更新(子应用代码改变后,通过webosocket通知浏览器,浏览器发起fetch和xhr请求获取更新后的变动内容),但是我的windows本不可以。我感觉热更新模块出了问题(我们的微应用项目之前使用的webpack,后来换成了内部自研脚手架工具hammer),可能是换成hammer后,一部分人的热更新出现了问题,但是通过看hammer源码,发现并没有什么问题。
到目前为止,我觉得我的思路是错的,如果是热更新出现问题,不可能时好时坏。

本文讲述了作者在Windows环境下遇到微应用无法热更新的问题,经过一系列排查,发现是由于命令行工具不支持`grep`命令导致获取微应用地址错误。最终解决方案是使用bash替代cmd和powershell。此问题提醒我们在开发时尽量使用bash,并在阅读源码时要大胆分析和猜测。
最低0.47元/天 解锁文章
1147





