micro-app icon indicating copy to clipboard operation
micro-app copied to clipboard

RangeError: Maximum call stack size exceeded

Open Valar103769 opened this issue 3 years ago • 13 comments

问题描述

问题的具体描述 使用

<micro-app
      name="app1"
      url="https://zeroing.jd.com/"
      baseroute="/micro-app"
   ></micro-app>

就报错, runtime-core.esm-bundler.js:561 RangeError: Maximum call stack size exceeded, 还未走到拉取子应用资源的那一步

// main.js
import microApp from '@micro-zoe/micro-app'
const app = createApp({
    render () { return h(AppWrapper); }
});
microApp.start()

app.mount('#app');

上传截图

请上传代码截图、控制台、终端等截图以帮助我们了解您的问题。 image

复现仓库

请提供一个精简的代码仓库,然后上传到自己的 github,以帮助我们复现您的问题。

gitpod

pnpm run dev 

环境信息

  • micro-app版本:"@micro-zoe/micro-app": "^0.8.10",
  • 主应用前端框架&版本:"vue": "^3.2.37", "vue-router": "^4.1.5"
  • 子应用前端框架&版本: "react": "^16.14.0", "react-router": "^5.2.1",
  • 构建工具&版本:主应用vite,子应用umi3

Valar103769 avatar Sep 19 '22 03:09 Valar103769

@WLyKan @cuitianze

Valar103769 avatar Sep 19 '22 06:09 Valar103769

@bailicangdu 大佬 请帮忙看看 比较紧急

Valar103769 avatar Sep 19 '22 06:09 Valar103769

打不开,有可以下载的demo吗

bailicangdu avatar Sep 19 '22 07:09 bailicangdu

打不开,有可以下载的demo吗

https://github.com/Valar103769/vue3-template @bailicangdu

Valar103769 avatar Sep 19 '22 07:09 Valar103769

打不开,有可以下载的demo吗

https://github.com/Valar103769/vue3-template @bailicangdu

ok,这个只是基座的吧,子应用的有吗

bailicangdu avatar Sep 19 '22 07:09 bailicangdu

打不开,有可以下载的demo吗

https://github.com/Valar103769/vue3-template @bailicangdu

ok,这个只是基座的吧,子应用的有吗 还没走到拉去子应用资源那一步, 应该不需要看子应用吧? 子应用是公司项目看不了, 我使用antd pro 搭建的, 我刚想搞个demo给你看看, 但是他官方的步骤又报错了,antd pro真的很垃圾,我也很无奈, 怎么办啊 https://pro.ant.design/zh-CN/docs/getting-started

Valar103769 avatar Sep 19 '22 07:09 Valar103769

我先看一下

bailicangdu avatar Sep 19 '22 07:09 bailicangdu

我先看一下

大佬, 有思路吗? 需要我配合什么吗 @bailicangdu

Valar103769 avatar Sep 19 '22 08:09 Valar103769

我先看一下

大佬, 可以加你微信, 催催你吗?

Valar103769 avatar Sep 19 '22 08:09 Valar103769

你可以加qq群857721213

bailicangdu avatar Sep 19 '22 08:09 bailicangdu

解决方式1: 改一下vue组件名称 image

bailicangdu avatar Sep 20 '22 03:09 bailicangdu

解决方式2: 修改vite.config.js配置 -- 推荐这个 image

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  resolve: {
    alias: {
      '@': path.resolve('./src')
    }
  },
  plugins: [vue({
    template: {
      compilerOptions: {
        isCustomElement: tag => /^micro-app/.test(tag)
      }
    }
  })],

})

bailicangdu avatar Sep 20 '22 03:09 bailicangdu

解决方式2: 修改vite.config.js配置 -- 推荐这个 image

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  resolve: {
    alias: {
      '@': path.resolve('./src')
    }
  },
  plugins: [vue({
    template: {
      compilerOptions: {
        isCustomElement: tag => /^micro-app/.test(tag)
      }
    }
  })],

})

原来如此, 多谢 , 另外,好兄弟 能否提供自定义放到window上的变量名字, 因为 umi的子应用, 被他们写死了

  // 如果没有手动关闭 runtimePublicPath,则直接使用 qiankun 注入的 publicPath
  if (api.config.runtimePublicPath !== false && !shouldNotModifyRuntimePublicPath) {
    api.modifyPublicPathStr(
      `window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__ || window.publicPath || "${
        // 开发阶段 publicPath 配置无效,默认为 /
        process.env.NODE_ENV !== 'development' ? api.config.publicPath || '/' : '/'
      }"`,
    );
  }

只能使用__INJECTED_PUBLIC_PATH_BY_QIANKUN__ 变量名,项目已经被antd全家桶绑死了,完全动不了了

Valar103769 avatar Sep 20 '22 03:09 Valar103769