Я использую модуль gulp-order вместе с модулем потоков событий и gulp-concat для объединения файлов javascript в один файл назначения. Плагин 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);
});