#172·qiankun

[Feature Request]模块自动依赖支持独立运行

Author: mayako21126Created Nov 27, 2019Updated Sep 17, 2026
Labelsenhancement

Background

理想中应用能按照SCS那样自包含独立运行,但是前端和后端不同的是,自包含就意味着可能带来的依赖重复引入。以前在美团时候的老做法是引入公共类库,抛去库版本的问题。对原有项目的侵入型,应用本身的独立性也产生了一定影响。

Proposal

依赖根据环境选择导入方式(自注入or父引入)及自启动

这里简单写一下现有逻辑 这边编写了一个babel插件,通过简单配置,先达成应用的自运行与自包含 image image image 对原有业务代码无侵入,通过externals分离出外部依赖和library获取name用来根据运行环境(是否是singla-spa/qiankun)选择是否主动mount 本来是打算给singla-spa用的,发现qiankun在其他方面也做了整合。看了下代码后对importHTMLEntry插件做了些许修改,使之能在读取子应用时,也处理通过externals分离出来的外部依赖。因为使用了systemjs所以需要在父html里配置公用库 image 其他不需要修改,直接运行就可以 image image

问题: 1库的版本问题确实还需要解决 2对于可能带来的全局污染我打算再看一下qiankun的沙箱处理看是否能用来解决 3内存的处理

代码修改 https://github.com/mayako21126/qiankun/commit/50561afffcf3ad3e5045ad565b5f8bc0dc220501 另外2个插件 https://www.npmjs.com/package/babel-plugin-auto-import-externals https://www.npmjs.com/package/import-html-entry-externals fork自 https://github.com/kuitos/import-html-entry