Я использую модуль gulp -order вместе с модулем потоков событий и gulp -concat, чтобы объединить файлы javascript в один файл dest. Плагин gulp -order отлично подойдет для меня в других проектах, где я хотел бы объединить файлы из потока в определенном порядке. По какой-то причине в этом проекте он работает некорректно, а файлы в каталоге public/angular/config разбросаны среди файлов, которые я указываю для конкатенации последнего в каталоге public/js. Я думаю, что это может иметь какое-то отношение к определению многократных источников, т.е. каталогов angular и js. Я попытался слить потоки с модулем событий-потоков без везения, тогда как при первом запуске я указал несколько источников, передав массив функции gulp.src
gulp.src(['./public/angular/**/*.js', './public/js/*.js'])
Ниже приведен код, который я использую сейчас. Трубопроводы и конкатенация работают нормально, но порядок не соответствует спецификации:
var gulp = require('gulp');
var concat = require('gulp-concat');
var notify = require('gulp-notify');
var handleErrors = require('../util/handleErrors');
var jshint = require('gulp-jshint');
var ngmin = require('gulp-ngmin');
var order = require('gulp-order');
var es = require('event-stream');
function getStream(streamPath) {
return gulp.src(streamPath);
};
gulp.task('scripts', function() {
return es.merge(getStream('./public/angular/**/*.js'),getStream('./public/js/*.js'))
.pipe(order([
'./public/angular/config/*.js',
'./public/angular/services/**/*.js',
'./public/angular/modules/**/*.js',
'./public/angular/primitives/**/*.js',
'./public/js/**/*.js'
]))
.pipe(concat('app.js'))
.pipe(gulp.dest('./public/build/js'))
.on('error', handleErrors);
});