Почему добавление «es-2015» к моей предустановке Babel вызвало «экспорт не определен» в этом базовом приложении? - PullRequest
0 голосов
/ 26 января 2019

Я настраиваю шаблон, запускающий Gulp with Babel.Я создал 2 простых файла (app.js и Caller.js) для тестирования среды.

Caller.js:

export default class Caller {
    constructor() {
        //
    }

    SayHello() {
        alert("Hello!!");
    }
}

App.js:

import Caller from './Caller.js';

let x = new Caller();
x.SayHello();

App.js упоминается в index.html вместе с:

<script src="/js/Caller.js"></script>
<script src="/js/app.js"></script>

Моя задача Gulp выглядит следующим образом:

gulp.task('js', () => {
    pump([
        gulp.src(src.js),
        plumber(err => console.error(err)),
        babel({ presets: ['es2015', 'es2017'] }),
        gulp.dest(dest.js),
        browserSync.stream()
    ]);
});

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

Я обнаружил, что при включении es2015, а не только es2017, я получаю следующие ошибки:

ReferenceError: экспорт не определен

ReferenceError:require не определен

Насколько я понимаю, этот код можно перенести в код, совместимый с ES2015, но если я удалю ES2015 из предустановок Babel в Gulp, он будет работать нормально.

Почему?

...