2016-12-08 12 views
2

В моем gulpfile у меня естьBrowserify - ParseError: «импорт» и «экспорт» может появиться только с «SourceType: модуль

var gulp = require('gulp'); 
var browserSync = require('browser-sync').create(); 
var sass = require('gulp-sass'); 
var babel = require("gulp-babel"); 
var rename = require('gulp-rename'); 
var source = require('vinyl-source-stream'); 
var browserify = require('gulp-browserify'); 
var notify = require("gulp-notify"); 


gulp.task('js', function() { 
    gulp.src('js/main.js') 
     .pipe(babel()) 
     .pipe(browserify()) 
     .on('error', errorAlert) 
     .pipe(rename('./dist/js/bundle.js')) 
     //.pipe(uglify()) 
     .pipe(gulp.dest('./')) 
     .pipe(notify({title: "Success", message: "Well Done!", sound: "Glass"})); 


}) 

и в моем app.js я пытаюсь импортировать, но получить errror

import SimpleBreakpoints from 'simple-breakpoints' 

Любая идея, как избавиться от ошибки и использовать синтаксис импорта?

Изменить: .babelrc

{ 
    "presets": ["es2015"], 

} 
+0

Вы можете показать свой '.babelrc' файл? –

+0

Обновлено сообщение. – LeBlaireau

ответ

3

В конфигурации, конвейер js/main.js Бабель, так что это единственный файл, который будет transpiled. Когда Browserify требует app.js, он увидит содержимое ES6 и произведет ошибку, которую вы видите.

Вы можете использовать Babelify для решения проблемы. Это преобразование Browserify, которое преобразует источник, который получает Browserify.

Чтобы установить его, выполните следующую команду:

npm install babelify --save-dev 

и настроить его, изменить свою задачу:

gulp.task('js', function() { 
    gulp.src('js/main.js') 
     .pipe(browserify({ transform: ['babelify'] })) 
     .on('error', errorAlert) 
     .pipe(rename('./dist/js/bundle.js')) 
     //.pipe(uglify()) 
     .pipe(gulp.dest('./')) 
     .pipe(notify({ title: "Success", message: "Well Done!", sound: "Glass" })); 
}) 
+0

Огромное спасибо! «так что это единственный файл, который будет переполнен», - это информация, которую я отсутствовал. – LeBlaireau

+1

@cartant Не могли бы вы добавить свой полный файл gulpfile? Это совсем не похоже на рецепты, и я не могу запустить его, когда вы его разместили (вы не можете транслировать после браузера.) –

+0

@GeorgeKatsanos Отвечая на вопрос, я только обратил внимание на ошибку в заголовке, которая является ошибкой Эффекты браузера, если он получает модуль ES6. Ответ был предназначен только для решения проблемы Вавилон/Вавилон; Я не обращал большого внимания на другие биты. (И вопросы, связанные со сборками, часто слишком сложны для воспроизведения.) Вы должны обязательно следовать рецептам, которые вы упомянули, и задать вопрос, если у вас есть проблемы. Надеюсь, ты получишь это. – cartant