RangeError: Maximum call stack size exceeded
问题描述
问题的具体描述 使用
<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');
上传截图
请上传代码截图、控制台、终端等截图以帮助我们了解您的问题。
复现仓库
请提供一个精简的代码仓库,然后上传到自己的 github,以帮助我们复现您的问题。
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
@WLyKan @cuitianze
@bailicangdu 大佬 请帮忙看看 比较紧急
打不开,有可以下载的demo吗
打不开,有可以下载的demo吗
https://github.com/Valar103769/vue3-template @bailicangdu
打不开,有可以下载的demo吗
https://github.com/Valar103769/vue3-template @bailicangdu
ok,这个只是基座的吧,子应用的有吗
打不开,有可以下载的demo吗
https://github.com/Valar103769/vue3-template @bailicangdu
ok,这个只是基座的吧,子应用的有吗 还没走到拉去子应用资源那一步, 应该不需要看子应用吧? 子应用是公司项目看不了, 我使用antd pro 搭建的, 我刚想搞个demo给你看看, 但是他官方的步骤又报错了,antd pro真的很垃圾,我也很无奈, 怎么办啊 https://pro.ant.design/zh-CN/docs/getting-started
我先看一下
我先看一下
大佬, 有思路吗? 需要我配合什么吗 @bailicangdu
我先看一下
大佬, 可以加你微信, 催催你吗?
你可以加qq群857721213
解决方式1: 改一下vue组件名称

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

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)
}
}
})],
})
解决方式2: 修改vite.config.js配置 -- 推荐这个
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全家桶绑死了,完全动不了了
