网上查询该报错信息发现和我遇见的问题不同,发现别人都是因为JS文件引用出的问题,将JS文件引用改为html引用的方式,同时添加ignore属性,如:

<script src="..." ignore></srcipt>

而我并未引用js,经自已排查后发现问题出在子应用以下部分:

if (window.__POWERED_BY_QIANKUN__) {
  __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}

该部分为qiankun官网中给出的,引入子应用中即可。由于IDE提示__webpack_public_path__ 未定义,定义未使用,为了看着舒服我就定义了变量,问题就在于此。不管是用let|var|window哪种方式都是错误的。不做定义就可以正常访问到了,具体详情没有深拔,猜测该变量是跟据当前上下文来取值。

最终如下:

(function(){
    if (window.__POWERED_BY_QIANKUN__) {
      __webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
    }
    render();
})()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐