IE11中的故事书出现问题。 “未定义WeakSet”

时间:2020-01-09 12:03:44

标签: reactjs webpack babeljs storybook core-js

我在IE11中运行故事书时遇到麻烦。 这是我在IE11控制台中看到的错误:enter image description here

我像这样在babel中使用core-js:

presets: [
    ['@babel/preset-env', {
      modules: false,
      loose: true,
      useBuiltIns: "usage",
      corejs: 2,
      debug: true,
      targets: {
        browsers: [
          'last 2 Chrome versions',
          'last 2 Firefox versions',
          'last 2 Safari versions',
          'last 2 Opera versions',
          'last 2 Edge versions',
          'last 2 iOS versions',
          'last 2 ChromeAndroid versions',
          'IE 11'
        ]
      }
    }],
    '@babel/preset-react'
  ]

这是webpack中的babel-loader:

{
  test: /\.jsx?$/,
  include: [resolve(__dirname, 'src')],
  exclude: /node_modules/,
  loader: 'babel-loader'
}

在core-js@3.6.1上也尝试过,但是我得到了相同的结果。

UPD:错误的翻译:未定义WeakSet。

2 个答案:

答案 0 :(得分:0)

对于IE11,您必须执行一个polyfill才能使WeakSet工作。查看此仓库https://github.com/ungap/weakset

适用于IE11或具有WeakMap但没有WeakSet的浏览器的polyfill。

与IE9兼容,可以与IE8中的ES5垫片预先兼容(也许也更低)。

答案 1 :(得分:0)

尝试了很多解决方案,但是对我有用的唯一方法是上述CDN的旧式脚本src。在您的故事书文件夹中,添加一个名为preview-head.html的文件并添加以下脚本链接:

<script src="https://unpkg.com/@ungap/weakset"></script>