Quiero usar trago para concatenar algunos archivos html en orden, y algunos de ellos están duplicados.
Por ejemplo:
gulp.task('Generate HTML', function(cb) { const srcset = [ 'header.html', 'content.html', 'section2.html', 'banner-cat.html', 'section3.html', 'banner-cat.html', 'section4.html', 'content.html', 'content.html', 'banner.html', 'footer.html' ]; gulp.src(srcset, {'allowEmpty': true, 'nounique': true, 'nosort': true}) .pipe(concat('index.html')) .pipe(gulp.dest('public/')); cb(); }); Encontré las opciones no-unique y no-sort en la documentación , así que pensé que eso resolvería mi problema, sin embargo, no obtengo el resultado deseado, ya que cada fragmento de html solo se concat una vez, por lo que cualquier fragmento duplicado solo se presentarse una vez.
Por favor, ayúdenme con algún consejo o si conocen algún otro paquete de gulp que pueda ayudarme a lograr el resultado deseado usando gulp y javascript
gulp.src trata su argumento como una lista de patrones globales en lugar de rutas de archivos. Cada patrón puede coincidir con uno o varios archivos o con ninguno, y si el mismo archivo coincide con varios patrones, depende de la implementación decidir qué hacer.
Aquí es mejor cargar cada archivo individualmente y luego unirse a las transmisiones.
Para usar merge2 , instale el paquete con:
npm install -D merge2Entonces su código podría verse así:
const merge2 = require('merge2'); gulp.task('Generate HTML', function(cb) { const srcset = [ 'header.html', 'content.html', 'columns-left.html', 'columns-right.html', 'columns-left.html', 'columns-right.html', 'banner.html', 'content.html', 'content.html', 'banner.html', 'footer.html' ]; const streams = srcset.map(src => gulp.src(src)); merge2(...streams) .pipe(concat('generated-page.html')) .pipe(gulp.dest('public/')); cb(); });