Gulpfile. js в сочетании с Babelify и browserify - PullRequest
0 голосов
/ 18 апреля 2020

Итак, у меня есть следующий gulpfile.js, который в основном выполняется JavaScript в зависимости от того, является ли он файлом или каталогом (объединяет файлы в каталоге в один файл), и запускает некоторые задачи с помощью lazypipe. * 1003. *

Цель здесь - объединить задачу, необходимую для обработки файлов javascript, с Babel, как я обнаружил в следующих примерах, но я, должно быть, что-то делаю не так.

Пример 1 Пример 2 Пример 3

var paths = {
  js: {
    input: "src/js/*",
    output: "dist/js/",
  },
};

var gulp = require("gulp");
var lazypipe = require("lazypipe");
var flatmap = require("gulp-flatmap");
var rename = require("gulp-rename");
var uglify = require("gulp-terser");
var optimizejs = require("gulp-optimize-js");

// Repeated JavaScript tasks
var jsTasks = lazypipe()
  .pipe(optimizejs)
  .pipe(gulp.dest, paths.js.output)
  .pipe(rename, { suffix: ".min" })
  .pipe(uglify)
  .pipe(optimizejs)
  .pipe(gulp.dest, paths.js.output);

// Minify, and concatenate scripts
var buildScripts = function (done) {
  gulp.src(paths.js.input).pipe(
    flatmap(function (stream, file) {
      // If the file is a directory
      if (file.isDirectory()) {
        // Grab all files and concatenate them
        gulp
          .src(file.path + "/*.js")
          .pipe(concat(file.relative + ".js"))
          .pipe(jsTasks());

        return stream;
      }

      // Otherwise, process the file
      return stream.pipe(jsTasks());
    })
  );
};

Я хочу включить следующее в lazypipe с входом и источником, равными file.path

browserify("./src/index.js", { debug: true })
  .transform(
    babelify.configure({
      presets: ["es2015"],
    })
  )
  .bundle()
  .pipe(source("bundle.js"))
  .pipe(buffer());
...