Обновление: ошибки с postCSS и Babel в Gulpfile

Цель

Я обновляю свой старый gulpfile.js, который использовался главным образом для компиляции моего Sass в CSS, но теперь я пытаюсь получить Gulp, чтобы сделать следующее:

  • Браузер синхронизации, взломать локальный сервер - СОВЕРШЕННО
  • Скомпилировать Sass = > CSS - СОВЕРШЕННО
  • Показать ошибки JavaScript в JSHint - СОВЕРШЕННО
    • Скомпилировать ES6 = > ES6 с Babel (WORKING ON)
  • Свернуть все активы (WORKING ON)
    • Показать размер файла проекта - СОВЕРШЕННО
  • Разверните index.html, style.css и изображения на S3 (WORKING ON)
  • Смотреть файлы, перезагружать браузер, когда .scss или .html изменения - СОВЕРШЕННО

Проблема

  • Попытка минимизировать мой Javascript, а также создать scripts.min.js file, он добавляет суффикс min к каждому новому мини-JavaScript файл.

Структура папки

index.html
gulpfile.js
package.json
.aws.json
.csscomb.json
.gitignore

assets
- css
style.css
style.scss

--partials
---base
---components
---modules

- img
- js
scripts.js

- dist

gulpfile.js

// Include Gulp
var gulp = require('gulp');
var postcss = require("gulp-postcss");

// All of your plugins
var autoprefixer = require('autoprefixer');
var browserSync = require('browser-sync');
var cache = require('gulp-cache');
var concat = require('gulp-concat');
var csswring = require("csswring");
var imagemin = require('gulp-imagemin');
var jshint = require('gulp-jshint');
var lost = require("lost");
var plumber = require('gulp-plumber');
var rename = require('gulp-rename');
var rucksack = require("rucksack-css");
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');

// Sync browser, whip up server
gulp.task('browser-sync', function() {
  browserSync({
    server: {
       baseDir: "./"
    }
  });
});

// Reload page automagically
gulp.task('bs-reload', function () {
  browserSync.reload();
});

// Compile Sass into CSS, apply postprocessors
gulp.task('styles', function(){
  var processors = [
      autoprefixer({browsers: ['last 2 version']}),
      csswring,
      lost,
      rucksack
  ];

  gulp.src(['assets/css/**/*.scss'])
    .pipe(plumber({
      errorHandler: function (error) {
        console.log(error.message);
        this.emit('end');
    }}))
    .pipe(sass())
    .pipe(postcss(processors))
    // .pipe(gulp.dest('assets/css/'))
    // .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('assets/css/'))
    .pipe(browserSync.reload({stream:true}))
});

// Show any JavaScript errors
gulp.task('scripts', function(){
  return gulp.src('assets/js/**/*.js')
    .pipe(plumber({
      errorHandler: function (error) {
        console.log(error.message);
        this.emit('end');
    }}))
    .pipe(jshint())
    .pipe(jshint.reporter('default'))
    // .pipe(concat('main.js'))
    // .pipe(babel())
    .pipe(gulp.dest('assets/js/'))
    .pipe(uglify())
    .pipe(gulp.dest('assets/js/'))
    .pipe(rename({suffix: '.min'}))
    .pipe(browserSync.reload({stream:true}))
});

// Minify assets, create build folder
gulp.task('images', function(){
  gulp.src('assets/img/**/*')
    .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })))
    .pipe(gulp.dest('assets/img'));
});

// Minify HTML


// Default task
gulp.task('default', ['browser-sync'], function(){
  gulp.watch("assets/css/**/*.scss", ['styles']);
  gulp.watch("assets/js/**/*.js", ['scripts']);
  gulp.watch("*.html", ['bs-reload']);
  gulp.start("images", "styles", "scripts")
});

// var babel = require('gulp-babel');
// var minifyhtml = require("gulp-minify-html");
// var size = require("gulp-size");
// var upload = require("gulp-s3");

Ответ 1

Привет, я не могу решить все ваши проблемы, но у меня была аналогичная проблема с функциями функции babel и ES6 fat arrow (с помощью babelify и браузера). Чтобы решить проблему, попробуйте передать:

stage: 0

к вашему babel.js gulp плагину. Если ошибка все равно произойдет, попробуйте также передать:

experimental: true

Для получения дополнительной информации, пожалуйста, посмотрите "экспериментальный" раздел на сайте babel.js.