es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecutando una serie de funciones con parámetros en gulp.

Me encuentro con un error al intentar ejecutar un conjunto de funciones personalizadas en gulp.

Mi código se ve así:

function subsiteCss(subsite) {
return gulp
    .src(path.join(paths.src, `scss/styles-${subsite}.scss`))
    .pipe(plumber())
    .pipe(sourcemaps.init())
    .pipe(sass({ sourceMap: true, outputStyle: 'expanded', 'includePaths': ['node_modules/sass-mq', '../node_modules/sass-mq'] }))
    .on('error', swallowError)
    .pipe(postcss([cssnano()]))
    .pipe(sourcemaps.write('./maps'))
    .pipe(gulp.dest(paths.sassSubsitesDist))
    .pipe(browsersync.stream());
}
function subsiteAllCss() {
    gulp.parallel(subsiteCss('subsite-1'), subsiteCss('subsite-2'), subsiteCss('subsite-3'));
}

La función subsiteCss(subsite) funciona correctamente si codifico el parámetro. Pero cuando quiero ejecutar subsiteAllCss de esta manera:

const build = gulp.series(clean, gulp.parallel(subsiteAllCss, css, js, headScripts), svg, copyFonts);

Obtengo el error: AssertionError [ERR_ASSERTION]: Tarea nunca definida: [object Object]
Funciona si elimino subsiteAllCss de gulp.parallel(...)

¿Alguna idea?

Tags:  

Answer

  1. Avatar for davy.ai

    El problema con el código es que la función subsiteAllCss no está devolviendo el flujo del pipeline, en su lugar está devolviendo flujos paralelos que no están definidos como tareas. Para solucionar el error, la función subsiteAllCss debería devolver el flujo del pipeline fusionado.

    function subsiteAllCss() {
        return gulp.merge(subsiteCss('subsite-1'), subsiteCss('subsite-2'), subsiteCss('subsite-3'));
    }
    

    Esto devolverá un flujo de pipeline fusionado de todos los flujos de subsiteCss. Luego, subsiteAllCss puede ser utilizado en la función gulp.parallel(...).

Comments are closed.