“Symbol” n’est pas défini dans IE après l’utilisation de babel

J’ai une application reactjs écrite en utilisant les normes ES6, et j’utilise webpack pour la construire. Le webpack charge les modules js utilisant babel-loader . Pour être précis, j’utilise les versions suivantes des packages: ├── babel@5.8.34 ├── babel-core@5.8.34 ├── babel-loader@5.4.0 └── webpack@1.12.6

Cependant, après sa création, l’IE 10 génère l’erreur suivante: 'Symbol' is undefined . Le babel ne devrait-il pas être supposé définir le Symbol ? Existe-t-il une configuration spécifique pour webpack ou babel je dois configurer pour que cela fonctionne? J’utilise la configuration {stage: 0} dans mon .babelrc .

Toute aide serait appréciée, merci!

Vous pouvez exiger du polyfill dans le point d’entrée de votre code pour qu’il soit intégré au rest de JavaScript.

Une option consiste à utiliser:

 require('babel-polyfill'); 

Ou:

 import 'babel-polyfill'; 

Tout cela est expliqué dans la documentation .

Ok, j’ai finalement découvert que babel seul ne fait pas de polyfill. Y compris le script résolu ce problème pour moi.

dans la documentation sur Runtime

 // in bash npm install babel-transform-runtime --save-dev // in gulpfile .pipe(babel({ plugins: ['transform-runtime'] })) 

edit: mieux encore sur heroku en mode prod utilisation –save au lieu de –save-dev

OK, j’avais le même problème, mais dans mon cas, c’était assez différent, donc fondamentalement, vous devez inclure le script dans le fichier d’index comme ci-dessous:

  

Mais dans mon cas, j’ai déjà inclus que, après quelques enquêtes, j’ai découvert que mon proxy bloquait le script …

Assurez- vous donc de l’inclure dans index.html et de vous assurer que vous avez access au script là où vous en avez besoin pour éviter que l’erreur ne se produise … il suffit de copier et coller l’URL dans le navigateur …

Mais maintenant que nous arrivons à ce point, il ne s’agit pas de Symbol lui-même, quel symbole ne peut pas être reconnu dans IE?

La fonction Symbol () renvoie une valeur de type symbole, possède des propriétés statiques qui exposent plusieurs membres d’objects intégrés, dispose de méthodes statiques qui exposent le registre de symboles global et ressemble à une classe d’objects intégrée mais est incomplète en tant que constructeur il ne supporte pas la syntaxe “new Symbol ()”.

Chaque valeur de symbole renvoyée par Symbol () est unique. Une valeur de symbole peut être utilisée comme identifiant pour les propriétés d’object; c’est le seul but du type de données. Vous trouverez d’autres explications sur le but et l’utilisation dans l’entrée du glossaire pour Symbol.

Le symbole du type de données est un type de données primitif.