网上查询该报错信息发现和我遇见的问题不同,发现别人都是因为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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐