Estoy usando Grunt (herramienta de construcción de línea de comandos basada en tareas para proyectos de JavaScript) en mi proyecto. He creado una etiqueta personalizada y me pregunto si es posible ejecutar un comando en ella.
Para aclarar, estoy tratando de usar plantillas de cierre y "la tarea" debería llamar al archivo jar para precompilar el archivo Soy en un archivo javascript.
Estoy ejecutando este jar desde la línea de comandos, pero quiero configurarlo como una tarea.
grunt-shell
a trabajar de inmediato con Windows + Cygwin, pero tuve más suerte congrunt-exec
."exec:cmd1", "exec:cmd2"
entonces también tiene un orden sincrónico.Mira
grunt.util.spawn
:fuente
opts: {stdio: 'inherit'},
se puede ver la salida del comandogrunt-legacy-util
complemento. Recomienda usar en surequire('child_process').spawn()
lugar.Encontré una solución, así que me gustaría compartirla contigo.
Estoy usando grunt debajo del nodo, por lo que para llamar a los comandos de la terminal, debe requerir el módulo 'child_process'.
Por ejemplo,
fuente
sh
antes,sh mayCommand.sh
no estoy seguro de que funcione en WindowsSi está utilizando la última versión de grunt (0.4.0rc7 en el momento de escribir este artículo), tanto grunt-exec como grunt-shell fallan (no parecen estar actualizados para manejar el último grunt). Por otro lado, el ejecutivo de child_process es asincrónico, lo cual es una molestia.
Terminé usando la solución de Jake Trent y agregando shelljs como una dependencia de desarrollo en mi proyecto para poder ejecutar pruebas de manera fácil y sincrónica:
fuente
grunt-shell
está funcionando bien congrunt v0.4.5
WindowsLos chicos están apuntando child_process, pero intenta usar execSync para ver la salida.
fuente
Para los comandos de shell asíncronos que funcionan con Grunt 0.4.x, use https://github.com/rma4ok/grunt-bg-shell .
fuente