Задача Gulp для создания js-файлов для конкретных страниц, объединяя общие js-файлы с файлами для конкретных страниц - PullRequest
0 голосов
/ 18 сентября 2018

Предполагая структуру каталогов, такую ​​как

  • SRC /
    • скрипты /
      • _common /
        • common.js
      • page1.js
      • page2.js

Я хочу создать отдельные файлы, объединяющие common + page1 и отдельный файл для common + page2.

Вывод будет выглядеть примерно так:

  • расстояние /
    • стр.1 /
      • script.js
    • стр.2 /
      • script.js

где script.js - это специфичные для каждой страницы js, соединенные с общими.

У меня есть что-то, работающее на стороне sass, которое создает папки, так что на самом деле все, что мне нужно сделать, - это выяснить, как получить файлы, специфичные для страницы, и поместить их в папку с именем исходного файла

return gulp.src(paths.styles.src)
    .pipe(sass().on('error', sass.logError))
    .pipe(postcss(processors))
     .pipe(rename(function(file) {
        file.dirname = file.basename;
        file.basename = 'style';
        file.extname = '.css';
    }))
    .pipe(gulp.dest(paths.styles.dest));

1 Ответ

0 голосов
/ 18 сентября 2018

Попробуйте это для js:

const gulp = require("gulp");
const glob = require("glob");
const addSource = require("gulp-add-src");
const concat = require("gulp-concat");
const path = require("path");

// get an array of files
const files = glob.sync("./src/scripts/*.js");

gulp.task('default', function () {

  files.forEach(function (file) {

    return gulp.src(file)

          // append or prepend here (prepend to put common.js first)
      .pipe(addSource.prepend('./src/scripts/_common/common.js'))

      .pipe(concat("script.js"))

      .pipe(gulp.dest("dist/" +  path.basename(file, '.js')));
  });
});
...