script1010: неопознанный синтаксис | Невозможно преобразовать ES6 в ES5 с помощью Babel для IE11

В моем коде Reactjs я получаю

Script1010: неопознанный синтаксис.

Это происходит из-за файла types.min.js внутри папки node_module / types.js.

Внутри файла types.min.js; Код o=function(...n) выдает ошибку из-за синтаксиса ES6. И хотя я создаю код с помощью Gulp, он не преобразует ES6 в ES5, поэтому IE11 выдает ошибку. Я использую babel-polyfill.

Так что любой ключ к разгадке, почему он не конвертируется. ???

Пока я конвертирую код types.js в формат ES5 и вставляю его в файл types.min.js, он работает отлично. Но это неправильный подход.

main.js:

// polyfills
   import 'classlist-polyfill';
   import 'element-closest';
   import objectFitImages from 'object-fit-images';
   import picturefill from 'picturefill';
   import 'masonry-layout/dist/masonry.pkgd';
   import 'imagesloaded/imagesloaded.pkgd';

babelrc:

{
  "presets": ["env","es2015", "react"],
  "plugins": [
    "transform-object-rest-spread",
    "transform-class-properties"]
}

person Avinash    schedule 16.01.2019    source источник
comment
Что такое types.js?   -  person connexo    schedule 16.01.2019
comment
В большинстве стеков сборки ресурсов папка node_modules не подлежит транспиляции. Ожидается, что пакеты node_modules / npm будут доставлять только контент ES5, но некоторые этого не делают.   -  person connexo    schedule 16.01.2019


Ответы (1)


Если вы скопируете https://raw.githubusercontent.com/phazelift/types.js/master/types.min.js в консоль IE 11 и запустите его, вы увидите, что код, полученный от node_modules/types.js, несовместим с IE 11.

Поскольку в большинстве конфигураций стека сборки модули из папки node_modules освобождены от транспиляции с помощью Babel, самым простым решением было бы скопировать их код в папки проекта, где находится ваш собственный код JS. Импортируя его оттуда, вы убедитесь, что ваш Babel транслирует код.

person connexo    schedule 16.01.2019
comment
Да, это сработало. Я обнаружил, что исключаю node_module для babel-loader в файле webpack.config. Я просто удалил это, и он работает нормально. Но не знаю, повлияет ли это на производительность или нет. Спасибо - person Avinash; 17.01.2019
comment
Удаление опции исключения - не лучшая идея, не только по соображениям производительности. Я лучше скопирую файл в папку, куда он будет перенесен по умолчанию. - person connexo; 17.01.2019
comment
но копирование из node_module и сохранение его в моем файле вызовет трудности, когда я изменю рабочее пространство или кто-то другой проверит код из репо. Поэтому я хочу сделать это автоматизированным или исключить node_module и включить только папку types.js внутри webpack.config - person Avinash; 17.01.2019