javascript - mac - Ejecutando la tarea gulp desde un gulpfile.js desde otro gulpfile.js
install gulp mac (1)
require (''child_process''). spawn;
Ejecutar un Gulpfile desde un directorio diferente es bastante simple con el módulo child_process#spawn
Node .
Intenta adaptar lo siguiente a tus necesidades:
// Use `spawn` to execute shell commands with Node
const { spawn } = require(''child_process'')
const { join } = require(''path'')
/*
Set the working directory of your current process as
the directory where the target Gulpfile exists.
*/
process.chdir(join(''tasks'', ''foo''))
// Gulp tasks that will be run.
const tasks = [''js:uglify'', ''js:lint'']
// Run the `gulp` executable
const child = spawn(''gulp'', tasks)
// Print output from Gulpfile
child.stdout.on(''data'', function(data) {
if (data) console.log(data.toString())
})
trago
Aunque el uso de gulp-chug
es una forma de hacerlo, ha sido incluido en la lista negra por los mantenedores de gulp
por ser ...
"Execing, demasiado complejo y solo está usando gulp como un globber"
La lista negra oficial dice ...
"no hay razón para que esto exista, use el módulo de requerimiento para todos o el requerimiento de nodo"
Tal vez sea algo malo con mi enfoque, pero tengo una situación siguiente:
- Tengo un
component-a
que tiene un gulpfile. Una de sus tareas (por ejemplo, construir) construye el componente y crea un archivo js combinado en la carpeta dist - Tengo un
component-b
que tiene un gulpfile. Una de sus tareas (por ejemplo, construir) construye el componente y crea un archivo js combinado en la carpeta dist - Tengo un proyecto que utiliza ambos componentes. Este proyecto también tiene un gulpfile y en él me gustaría escribir una tarea que:
- ejecuta la tarea de compilación desde /components/component-a/gulpfile.js
- ejecuta la tarea de compilación desde /components/component-b/gulpfile.js
- concats /components/component-a/dist/build.js y /components/component-b/dist/build.js (sé cómo hacerlo)
Lo que no sé es cómo ejecutar la tarea de compilación desde /components/component-?/gulpfile.js. ¿Es posible o debería lidiar con esta situación de otra manera?