Gulp BabelJs проблема с компиляцией в неправильном порядке - PullRequest
0 голосов
/ 03 июля 2018

Я столкнулся с проблемой, связанной с компиляцией ES6 сценариев с помощью gulp babel. Мой проект состоит из 40-50 различных ES6 файлов (по одному class на файл). На данный момент процесс компиляции опирается на поддерживаемый упорядоченный список этих файлов .js, чтобы гарантировать правильный порядок компиляции и вывода.

В самом прошлом я пытался позволить плагину babel компилировать эти файлы в своем собственном порядке. К сожалению, результатом были ошибки времени выполнения из-за отсутствия объявленных классов (на которые влиял неправильный порядок компиляции).

Теперь у меня вопрос: есть ли способ автоматически гарантировать правильный порядок компиляции вместо того, чтобы вручную поддерживать этот список?
Если нет, существует ли какой-либо компилятор ES6, который автоматически гарантирует правильный порядок компиляции?

Спасибо и всего наилучшего

1 Ответ

0 голосов
/ 29 июня 2019

Я думаю, проблема в том, что babel не разрешает ваши зависимости.

Например:

// ComponentA.js
import AbstractComponent from './AbstractComponent';
class ComponentA extends AbstractComponent { ... }

// AbstractComponent.js
class AbstractComponent { ... }
export default AbstractComponent;

// gulpfile.js
gulp.task('js', function () {
return gulp.src(['./resources/javascript/ComponentA.js'])
    .pipe(concat('app.js'))
    .pipe(babel({ presets: ['@babel/env']}))
    .pipe(gulp.dest('./public/js'));
});

Проблема в том, что babel не может найти родительский класс, потому что он не определен до класса ComponentA. У меня та же проблема и нет решения для этого.

например. Реагируйте, что вы можете импортировать из классов и компилировать их в es5, и все в порядке ...

...