IE и spread operator
Ребята, подскажите пожалуйста. IE ругается на spread operator.
Мои настройки: package.json "babel-core": "^6.26.3", "babel-loader": "^7.1.2", "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-preset-env": "1.6.1", .babelrc { "presets": [ "env" ], "plugins": [ "transform-object-rest-spread" ] } webpack.config.js module.exports = function () { return { module: { rules: [ { loader: 'babel-loader', test: /\.js$/ } ] } } } |
s24344,
babel-polyfill еще надо для Object.assign |
Спасибо. А Вы не могли бы более подробно подсказать куда его подключить?
|
s24344,
Оказывается babel-polyfill совсем необязателен, потому что object spread переписывается в Object.assign, а если его не поддерживает браузер, то вот в такую функцию function(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; Проверил с вашим конфигом в IE11 - всё работает. Что именно у вас пишет? |
Object doesn't support property or method 'from'
И именно в строке, где используется spread. |
Код покажите, как вы spread используете, какой ie?
|
IE11
this.primaryLinks = [...this.el.querySelectorAll('[data-nav-ref="primary-link"]')]; Предварительно ещё раз проверил, ошибка именно на этой строке. |
s24344,
Дело тут не в object spread. Его тут вообще нет. Дело в том, что ваша конструкция переписывается в Array.from(this.el.querySelectorAll('[data-nav-ref="primary-link"]')), что в IE конечно же не поддерживается. Поэтому нужен babel-polyfill. Если не хочется его подключать, то можно переписать ваш код следующим образом this.primaryLinks = Array.prototype.slice.call(this.el.querySelectorAll('[data-nav-ref="primary-link"]')); |
Спасибо за помощь.
|
Часовой пояс GMT +3, время: 10:18. |