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.

Gulp 4 matriz como fuente

Estoy intentando actualizar a Gulp 4 en un proyecto existente. He creado una tarea llamada “vendor” con la intención de concatenar y minimizar paquetes globales de JavaScript. Desafortunadamente, estoy recibiendo un error al compilar con el siguiente código:

function vendor() {
    const source = [
        './node<em>modules/@popperjs/core/dist/umd/popper.js',
        './node</em>modules/bootstrap/dist/js/bootstrap.js',
        './node_modules/slick-carousel/slick/slick.js'
    ];

    return src(source)
        .pipe(changed(source))
        .pipe(concat('vendor.js'))
        .pipe(uglify())
        .pipe(rename({
            extname: '.min.js'
        }))
        .pipe(dest('./dist/js/'))
}

exports.build = series(parallel(vendor, js));

El error que estoy recibiendo es “TypeError [ERR_INVALID_ARG_TYPE]: El argumento ‘path’ debe ser de tipo string. Se recibió un objeto”.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El error TypeError [ERR_INVALID_ARG_TYPE]: El argumento "path" debe ser de tipo string. Se recibió un objeto está siendo causado por el uso de la función changed() en la tarea vendor(). La función changed() espera una cadena como argumento, pero en su lugar está recibiendo un array de rutas de archivos.

    Para solucionar este error, es necesario eliminar la función changed() de la tarea vendor(). La función changed() se utiliza típicamente para procesar únicamente los archivos que han sido modificados desde la compilación anterior. Dado que la tarea vendor() está concatenando y minificando paquetes de JavaScript globales, no tiene sentido incluir la función changed() en esta tarea.

    El código actualizado para la tarea vendor() debería lucir así:

    function vendor() {
        const source = [
            './node_modules/@popperjs/core/dist/umd/popper.js',
            './node_modules/bootstrap/dist/js/bootstrap.js',
            './node_modules/slick-carousel/slick/slick.js'
        ];
    
        return src(source)
            .pipe(concat('vendor.js'))
            .pipe(uglify())
            .pipe(rename({
                extname: '.min.js'
            }))
            .pipe(dest('./dist/js/'))
    }
    
    exports.build = series(parallel(vendor, js));
    

    Este código editado debería concatenar y minificar correctamente los paquetes globales de JavaScript utilizando Gulp 4.

Comments are closed.