web 中大多数业务场景都存在不同项目应用共同使用同一个 web 组件的情况,特别是中后台业务,很容易就有十几个平台顶着同样的 header、footer、导航组件。 统一的 ui 风格和操作习惯对用户显然是更友好,不过这对开发和维护来说会有点麻烦。
目前主流的解决方案是将公共组件封装成独立的 npm 包,然后各项目引入使用。这也是我们之前采用的方案。
更新流程大致就是:
npm 库的方案主要有 2 点麻烦:
其中第 2 条最为头疼,想象一下,你给 footer 改个样式换几个字,都要所有平台走一遍构建部署流程,简直要疯。
我们希望可以针对部分组件,做到【免构建、热更新】
为了更好解决这个问题,我针对市面常用方案做了尝试和对比: