img imagenes imagen angularjs gulp gulp-concat

imagenes - ng src in angularjs



¿Combinando varias secuencias de src en trago? (1)

Me pregunto si hay alguna manera de combinar estas dos tareas separadas en una sola.

Esta tarea concat-js requiere que exista un archivo generado antes de ejecutarse. La tarea cache-angular-templates genera ese archivo. El archivo generado debe incluirse en la salida concat . Después de finalizar concat-js , el archivo se puede eliminar; ya no es necesario.

Parece ser que de alguna manera debería ser capaz de canalizar en la corriente utilizada en la cache-angular-tempaltes en la corriente que utiliza concat-js .

gulp.task(''concat-js'', [''cache-angular-templates''], function () { var concatOutputPath = path.dirname(paths.compiledScriptsFile), concatOutputFileName = path.basename(paths.compiledScriptsFile), jsFiles = [].concat( paths.libScripts, paths.appScripts, paths.templateScriptFile, notpath(paths.compiledScriptsFile), notpath(paths.specMockScripts), notpath(paths.specScripts) ); return gulp .src(jsFiles) .pipe(buildTools.concat(concatOutputFileName)) .pipe(gulp.dest(concatOutputPath)) .on(''end'', function () { del(paths.templateScriptFile); }) ; }); gulp.task(''cache-angular-templates'', function () { var cacheOutputPath = path.dirname(paths.templateScriptFile), cacheOutputFileName = path.basename(paths.templateScriptFile); var options = { root: ''/'' + cacheOutputPath, standalone: true, filename: cacheOutputFileName }; return gulp .src(paths.templates) .pipe(buildTools.angularTemplatecache(options)) .pipe(gulp.dest(cacheOutputPath)) ; });


De hecho, debería fusionarlos, ya que una de las ideas de Gulp es eliminar los archivos intermedios temporales.

Una de las formas de lograrlo es mediante:

  1. convirtiendo cache-angular-templates en una función que devuelve el flujo de plantillas, vamos a llamarlo getTemplateStream ;
  2. eliminando el .pipe(gulp.dest(cacheOutputPath)) de él;
  3. utilizando event-stream para fusionar las secuencias antes de concatenarla en la tarea principal. Tu tarea principal sería algo como esto:

var es = require(''event-stream''); gulp.task(''concat-js'', function () { var concatOutputPath = path.dirname(paths.compiledScriptsFile), concatOutputFileName = path.basename(paths.compiledScriptsFile), jsFiles = [].concat( paths.libScripts, paths.appScripts, notpath(paths.compiledScriptsFile), notpath(paths.specMockScripts), notpath(paths.specScripts) ); return es.merge(gulp.src(jsFiles), getTemplateStream()) .pipe(buildTools.concat(concatOutputFileName)) .pipe(gulp.dest(concatOutputPath)); }); function getTemplateStream() { var options = { root: ''/'' + cacheOutputPath, standalone: true, filename: cacheOutputFileName }; return gulp .src(paths.templates) .pipe(buildTools.angularTemplatecache(options)); }

Al hacer esto, está fusionando las dos secuencias y el archivo de salida de su getTemplateStream se enviará por la tubería.