¿Hay buenos tutoriales para integrar gruñido con hormiga? Nuestra construcción actual usa hormiga porque somos una tienda de Java. Sin embargo, el front-end está comenzando a convertirse en un ciudadano de primera clase, y estamos examinando el uso de node y grunt para la compilación front-end. Necesito integrar la compilación de front-end con la construcción de ant. Necesito saber cómo normalizar los códigos de salida para todas mis tareas personalizadas, así como las tareas grupales integradas y limitar la salida de la consola a estos códigos predefinidos cuando las tareas grupales son llamadas por hormiga. Cualquier ayuda sería muy apreciada.integrando gruñido con ant
Respuesta
Grunt puede llamar a la línea de comandos, por lo que puede crear fácilmente varias tareas en gruñido que no hacen más que ejecutar una tarea ant a través del shell.
La biblioteca grunt-shell
hace que sea especialmente fácil de ejecutar comandos externos desde una tarea ronco: https://github.com/sindresorhus/grunt-shell
Ya que estamos hablando de códigos de salida a medida, sin embargo, es probable que va a tener que terminar de escribir su propia ronco personalizada tarea que ejecuta un comando de shell y luego mira el código de respuesta (quizás usando el ayudante grunt.helpers.spawn
): https://github.com/gruntjs/grunt/blob/master/docs/api_utils.md#gruntutilsspawn
¿Mi consejo? Mi organization recently went through the same thing y lo mejor es, si es posible, simplemente hacer un descanso limpio de la hormiga y deshacerse de ella por completo para sus proyectos relacionados con JavaScript.
Grunt tiene una biblioteca de plugins tan creciente y útil Me sorprendería que no pudieras duplicar tus archivos de compilación ant y crear una solución 100% javascript.
puede utilizar http://abc.tools.qafoo.com/ que incluye un módulo de NPM * 1)
El único caso es necesario es un objetivo a medida como:
…
<target
name="-mm:compile:main~hooked"
extensionOf="-compile:main~hook"
depends="
-my-compile-npm-hook
"
>
<target
name="-my-compile-npm-hook"
>
<echo>install local grunt-cli</echo>
<antcall target="npm:install">
<param name="in.npm.package.name" value="grunt-cli" />
</antcall>
</target>
…
después de que usted puede ser que funcione ronco en los .npm/node_modules/.bin/
alias de directorio ${npm.local.modulesdir}/.bin/
^^ no se pierda para incluir o definir las propiedades de src/main/resources/extensions/npm/npm.properties
* 1): unfortunatly buggy con la versión actual Node.js
Usted podría utilizar esta macro:
<macrodef name="exec-node">
<attribute name="module" description="The name of the NodeJS module to execute"/>
<attribute name="failonerror" default="true" description="Fail if the exit code is not 0"/>
<element name="args" implicit="yes" description="Argument to pass to the exec task"/>
<sequential>
<exec executable="cmd.exe" failonerror="@{failonerror}" osfamily="winnt">
<arg line="/c @{module}" />
<args/>
<!-- Windows cmd output workaround: http://stackoverflow.com/a/10359327/227349 -->
<!-- Forces node's stderror and stdout to a temporary file -->
<arg line=" > _tempfile.out 2<&1"/>
<!-- If command exits with an error, then output the temporary file -->
<!-- to stdout delete the temporary file and finally exit with error level 1 -->
<!-- so that the apply task can catch the error if @failonerror="true" -->
<arg line=" || (type _tempfile.out & del _tempfile.out & exit /b 1)"/>
<!-- Otherwise, just type the temporary file and delete it-->
<arg line=" & type _tempfile.out & del _tempfile.out &"/>
</exec>
<exec executable="@{module}" failonerror="@{failonerror}" osfamily="unix">
<args/>
</exec>
</sequential>
</macrodef>
Y usted puede llamar a cualquier comando: ejemplo:
<target name="jshint">
<exec-node module="grunt">
<arg value="jshint" />
</exec-node>
</target>
funciona como un encanto: también asegura también se imprime el stderr, que es un común problema al llamar gruñido.
- 1. Integrando Cocos2D con UIKit
- 2. Integrando OpenSceneGraph con Qt
- 3. integrando R con Rsruby
- 4. ¿Integrando CoffeeScript con Eclipse?
- 5. Integrando Wix con MSBuild
- 6. Integrando PHPUnit con CakePHP 1.3
- 7. Integrando XMLRPC/Web Services con Core Data
- 8. Integrando Angular.js con Node.js (Express + Tower.js)
- 9. Integrando Ember.js con Node.js (Express + Tower.js)
- 10. integrando Git Bash con Visual Studio
- 11. integrando manipulación de salidas con knitr
- 12. Integrando AJAX y PHP
- 13. Django: Integrando Avangate IPN
- 14. System.out con Ant
- 15. ¿Cómo envolver una construcción Ant con Maven?
- 16. Integrando el pago de PayPal
- 17. Integrando Clang dentro de NetBeans?
- 18. Integrando Visual Studio Test Project con Cruise Control
- 19. Creando un AbstractProcessor personalizado e integrando con Eclipse
- 20. ¿Cómo usar GCJ con Ant?
- 21. compilar PHP con scripts ant
- 22. Prueba con Robolectric y ANT
- 23. no puede obtener notificaciones Growl que trabajan con gruñido rspec joya
- 24. Integrando "Ayuda" en la aplicación WinForms
- 25. python - beginner - integrando optparse en un programa
- 26. Integrando GeoDjango en el proyecto Django existente
- 27. Integrando los servicios de Guice y OSGi
- 28. Integrando Google Analytics en la aplicación GWT
- 29. Integrando Rserve en una aplicación Rails
- 30. Integrando CKeditor a mi proyecto symfony2
También estoy en una tienda de Java y esta es una venta difícil. Aunque el front-end también está aumentando en importancia para nosotros, es poco probable que cambiemos a JS como nuestro lenguaje de compilación para el código del lado del servidor. Un enfoque más realista parece ser invocar gruñidos a través de una tarea de hormiga personalizada. Por otro lado, no veo a nadie haciendo esto, así que ... – carbontax