Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Firefox出现错误TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them #902

Closed
neillee95 opened this issue Sep 14, 2023 · 7 comments
Labels
sandbox sandbox solved problem solved

Comments

@neillee95
Copy link

问题描述

问题的具体描述

我拉取 micro-app-demo ,运行 vite+vue3 主应用作为底座,在其中一个页面里将 url 修改为一个 vue2 项目构建后的访问地址(托管在 nginx 里,可以正常访问),
1cbd94b6720284e016610981d4c88da0
访问页面,页面上没有显示内容,控制台出现错误,
image
点击 sidebar 里的其他菜单,页面没有跳转,控制台又抛出了这个错误,即使是首页。我在本地启动了这个 vue2 项目,并将底座里的 url 改成了 http://localhost:xxx,刷新页面仍然是这个错误。又启动了 child_apps 下 vue2 子应用,修改 url 刷新后可以正常访问了。

我不知道我自己的 vue2 应用与示例里的 vue2 应用有什么很大的区别,暂时没有用 vue2 示例项目复现这个问题。后来我把浏览器从 Firefox 换成了 Google Chrome,发现自己的 vue2 应用可以访问了,同样基于 Chromium 的 Microsoft Edge 也可以访问。我不知道为什么在 Firefox 上会出现错误,而且从控制台输出的日志来看,error 回调函数没有被调用。

复现步骤

上传截图

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

复现仓库

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

环境信息

  • micro-app版本: 0.6.2(micro-app-demo 里的版本),0.8.11(在新项目里通过 npm install 的版本)
  • 主应用前端框架&版本:vite+vue3
  • 子应用前端框架&版本:vue2
  • 构建工具&版本:node: v18.14.0,npm: 9.3.1
  • 浏览器
    • Firefox: 116.0.3 (64-bit) Mozilla Firefox Snap For Ubuntu canonial-002 - 1.0
    • Google Chrome: Version 117.0.5938.62 (Official Build) (64-bit)
  • 操作系统:Ubuntu 22.04.3 LTS
@bailicangdu
Copy link
Member

子应用在Firefox可以单独打开吗

@bailicangdu bailicangdu added the sandbox sandbox label Sep 14, 2023
@neillee95
Copy link
Author

子应用在Firefox可以单独打开吗

子应用可以正常访问。

找到了问题所在,项目中用到了 luckysheet,luckysheet 直接放在了 public 目录下,index.html 中引入了 luckysheet,

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
    <script src="./luckysheet/plugins/js/plugin.js"></script>
    <script src="./luckysheet/luckysheet.umd.js"></script>
  </head>
  <body>
    ...
  </body>
</html>

有问题的文件就是 luckysheet.umd.js,里面用了 caller

@bailicangdu
Copy link
Member

可以提供一个简易的demo吗

@neillee95
Copy link
Author

可以提供一个简易的demo吗

启动主应用 vite-vue3 和子应用 sidebar,将子应用 vue2 / public / index.html 修改为

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title>child-vue2</title>
    <!-- 修改了这里 -->
    <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/css/pluginsCss.css' />
    <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/plugins.css' />
    <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/css/luckysheet.css' />
    <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/assets/iconfont/iconfont.css' />
    <script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/js/plugin.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/luckysheet.umd.js"></script>
    <!-- 修改了这里 -->
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="vue2-app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

启动子应用 vue2,点击菜单 child-vue2 > home

@neillee95
Copy link
Author

luckysheet 针对 Firefox 添加了 polyfill,我修改并重新构建 luckysheet 后没有问题了。现在不清楚为什么直接访问子应用没问题,用 micro app 访问会出现这个错误。

@bailicangdu
Copy link
Member

问题已复现,会在近期进行修复

@bailicangdu
Copy link
Member

bailicangdu commented Sep 27, 2023

升级到1.0版本即可解决,https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/transfer

@bailicangdu bailicangdu added the solved problem solved label Sep 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sandbox sandbox solved problem solved
Projects
None yet
Development

No branches or pull requests

2 participants