Обещание не определено в IE11 с использованием babel-polyfill - PullRequest
0 голосов
/ 23 сентября 2018

Как видно из заголовка, даже я бы хотел использовать babel-polyfill, чтобы позволить мне использовать обещания в моем коде, но я получаю эту неопределенную ошибку в IE11.

Я пытался сделатьЭта работа некоторое время, как я видел, несколько раз задавалась на разных сайтах, но ни одно из решений не помогло мне (точнее, я, вероятно, не смог адаптировать их к своему коду)

Это файлы, которые, я думаю, задействованы:

.babelrc

{
    "presets": [
        "es2015",
        "react"
    ]
}

package.json: у меня есть babel-polyfill в dev-зависимости, и я пытался поместить его взависимости (и то, и другое - только ручная замена и установка через консоль), и ни одна из них, похоже, не работает

Мой script.js не имеет его в качестве импорта (но если я попытался импортировать @ babel-polyfill, или другойкомбинации с косой чертой, когда я увидел этот синтаксис в package.json, не находит модуль)

Наконец, мой gulpfile.babel.js имеет следующую задачу:

gulp.task('build:js', ['lint'], () => {
    return browserify({
            entries: path.resolve(paths().source.js, 'script.js'),
            extensions: ['.jsx'],
            debug: true
        })
        .transform(babelify)
        .plugin('minifyify', {
            map: 'script.js.map.json',
            output: path.resolve(paths().public.js, 'script.js.map.json')
        })
        .bundle()
        .pipe(source('script.js'))
        .pipe(gulp.dest(path.resolve(paths().public.js)))
        .pipe(notify({
            onLast: true,
            message: 'Building JS done'
        }));
});

What I 'я делаю неправильно?

Спасибо

1 Ответ

0 голосов
/ 23 сентября 2018

Вам необходимо импортировать Babel polyfilly перед любым другим неполифиловым кодом в вашей точке входа JS:

import 'babel-polyfill';

или если вы уже переключились наBabel 7:

import '@babel/polyfill';

Также обратите внимание, что вы должны переключить свои пресеты на preset-env.Я бы порекомендовал вам перейти на Babel 7 и использовать @babel/preset-env.

Предполагая, что вы переключились на Babel 7, ваш .babelrc должен выглядеть следующим образом:

{
  "presets": [
    [ "@babel/preset-env", {
      "targets": {
        "browsers": [ "last 1 version", "ie >= 11" ]
      }
    }]
  ]
}
...