使用babel后在IE中未定义“符号”

我有一个reactjs使用ES6标准编写应用程序,并且webpack用于构建它。使用webpack加载js模块babel-loader具体来说,我使用以下版本的软件包: ├── babel@5.8.34 ├── babel-core@5.8.34 ├── babel-loader@5.4.0 └── webpack@1.12.6

但是,在构建它之后,IE 10会出现以下错误'Symbol' is undefined难道不babel应该定义Symbol吗?是否有任何特定的配置,webpack或者babel我需要进行设置才能使其正常工作?我在中使用{stage: 0}配置.babelrc

任何帮助,将不胜感激,谢谢!

LEYJim2020/03/13 15:30:41

好的,我遇到了同样的问题,但就我而言,情况却大不相同,因此基本上,您需要在索引文件中包含脚本,如下所示:

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser-polyfill.min.js"></script>

但就我而言,经过一些调查后,我已经将其包括在内,发现我的代理人阻止了该脚本...

因此,请确保将其包含在index.html中,并确保可以从需要的位置访问脚本,以免发生错误。最好的方法是将网址复制并粘贴到浏览器中...

但是现在我们到了这一点,它不是在谈论符号本身,什么是在IE中无法识别的符号?

Symbol()函数返回类型符号的值,具有公开内置对象的多个成员的静态属性,具有公开全局符号注册表的静态方法,并且类似于内置对象类,但作为构造函数不完整,因为它不支持语法“ new Symbol()”。

从Symbol()返回的每个符号值都是唯一的。符号值可以用作对象属性的标识符。这是数据类型的唯一目的。有关目的和用法的进一步说明可以在Symbol的词汇表条目中找到。

数据类型符号是原始数据类型。

米亚小哥斯丁2020/03/13 15:30:41

好的,我最终发现babel仅此一项并不能实现polyfill。包括脚本<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser-polyfill.min.js"></script>为我解决了这个问题。