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”.
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ónchanged()
en la tareavendor()
. La funciónchanged()
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 tareavendor()
. La funciónchanged()
se utiliza típicamente para procesar únicamente los archivos que han sido modificados desde la compilación anterior. Dado que la tareavendor()
está concatenando y minificando paquetes de JavaScript globales, no tiene sentido incluir la funciónchanged()
en esta tarea.El código actualizado para la tarea
vendor()
debería lucir así:Este código editado debería concatenar y minificar correctamente los paquetes globales de JavaScript utilizando Gulp 4.