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:
- convirtiendo
cache-angular-templates
en una función que devuelve el flujo de plantillas, vamos a llamarlogetTemplateStream
; - eliminando el
.pipe(gulp.dest(cacheOutputPath))
de él; - 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.