“代理”在 IE 中未定义

Sof*_*mur 6 cross-browser node.js express reactjs umijs

我已经通过 React+Node+ Umi构建了一个 Excel 插件。我们已经实施了我们的身份验证系统。验证在 Chrome 和 Safari 中有效,我刚刚发现它在 IE11 中无法正常工作;F12表明'Proxy' is undefined.

尽管它是一个 Excel 加载项,但我们可以仅在浏览器中重现该错误(以及相同的错误消息)。在 IE 11 中打开链接https://jsaddin.10studio.tech/welcome/?next=formulaEditor,使用 ID3094557608@qq.com和密码登录:123456。我们可以在 F12 中看到错误消息。

在此处输入图片说明

有人知道吗

  1. 如何解决这个问题?
  2. 我怎么知道我的代码的哪个库/部分使用了这个Proxy?我可以用替代品代替它。

编辑1:.umirc.ts

treeShaking: true,
targets: {
  ie: 9,
  safari: 9,
},
Run Code Online (Sandbox Code Playgroud)

package.json

"umi": "^2.7.0",
"umi-plugin-react": "^1.8.0",
"umi-types": "^0.2.0"
Run Code Online (Sandbox Code Playgroud)

编辑2:

我试过yarn add proxy-polyfill,然后yarn start。奇怪的是,它在 localhost 中引发了一个错误,Invalid character并且'umi' is undefined

在此处输入图片说明

tud*_*ely 0

看起来你缺少一个polyfill。你检查过 umi.js 的配置吗?https://umijs.org/config/#targets

将 ie 的目标设置为 11(如上面的链接所示)应该可以添加您需要的填充。

  targets: {
    ie: 11,
    ...other browsers
  },
  ...rest of the config
Run Code Online (Sandbox Code Playgroud)

LE:

如果 umi.js 出现问题,您可以尝试自己添加所需的 polyfill(例如,这是 Proxy https://github.com/GoogleChrome/proxy-polyfill的一个)