tutorial loop for convertir coffee javascript compilation coffeescript

javascript - loop - Compilación de guiones de café



coffeescript wikipedia (11)

Al estar un nivel por encima de / src, esto funcionará para todos los archivos .coffee encontrados sin importar la profundidad.

coffee -w -c src/

Estoy buscando la forma más sencilla posible de compilar automáticamente los scripts de café en JS.

Leyendo documentation pero aun teniendo problemas para conseguir exactamente lo que quiero.

Lo necesito para ver la carpeta src/ para cualquier modificación de los archivos *.coffee y compilarlos en un archivo javascript concatenado en lib/something.js .

De alguna manera no se puede combinar mirar, compilar y concatenar juntos. : /


Bueno coffee --watch tiene 2 defectos principales:

  • Los nuevos archivos creados después de que se haya emitido el comando no se están viendo
  • Requiere iniciación manual para que haya una posibilidad de que olvides hacerlo, lo que no suena más brillante que el de compilar antes de que lo git commit .

La solución que se me ocurrió es una secuencia de comandos Bash bastante simple que toma coffee --watch algunos pasos más allá, lo que permitirá que su árbol de directorios en funcionamiento se pueda ver desde el inicio de sesión del sistema, y ​​se compile automáticamente en JavaScript en cada archivo guardar / cambiar o creación de nuevo archivo:

http://blog.gantrithor.com/post/11609373640/carefree-coffeescript-auto-compiler

Puede haber una forma más elegante de hacer esto, pero esta implementación funciona muy bien =)


Cambió de opinión acerca de la concatenación.
Se creó un pequeño archivo compiler.sh que contiene:

dnotify -M src/ -e coffee -o lib/ -c src/ & dnotify -M spec/ -e coffee -o lib/ -c spec/ &

Tipo se adapta a mis necesidades.


Esto me ayudó ( -o directorio de salida, -j unirse a project.js, -cw compilar y ver el directorio de coffeescript en profundidad):

coffee -o web/js -j project.js -cw coffeescript


He encontrado que el compilador de coffeescript de línea de comandos no es adecuado para estructuras de proyectos complejos.

Si usted y su proceso de construcción están tan necesitados como yo, visite Grunt - http://gruntjs.com/

Permite procesos de construcción altamente complejos, por ejemplo, puede

  1. concatenar café a nuevo (s) archivo (s)
  2. compilar
  3. concatenar algunos JS adicionales
  4. minimizar

Las tareas se pueden juntar, y los archivos / carpetas observados también son altamente personalizables.


La documentación del script de café proporciona un ejemplo para esto:

Observe los cambios en un archivo y vuelva a compilarlo cada vez que se guarde el archivo:

coffee --watch --compile experimental.coffee

Si tiene un script en particular que desea ejecutar, puede usar el comando linux dnotify: http://linux.die.net/man/1/dnotify

dnotify --all src/ --execute=command

Edit: tuve algunos problemas con la parte de ejecución de dnotify, podría ser un error, pero esto es lo que conseguí trabajando:

dnotify --all . -e `coffee -o lib/ --join --compile *.coffee`

Eso ejecutaba el comando de compilación cada vez que se modificaba un archivo.

Si agrega el comando con un signo, como esto:

dnotify --all . -e `coffee -o lib/ --join --compile *.coffee` &

Se iniciará en un proceso separado. Para obtener el ID de proceso, puede utilizar esto:

ps ux | awk ''/dnotify/ && !/awk/ {print $2}''

Y luego, puedes matar el proceso usando algo como esto:

kill `ps ux | awk ''/dnotify/ && !/awk/ {print $2}''`

Pero si ese es tu objetivo (matar por nombre de proceso), puedes hacerlo de una manera más simple usando:

killall dnotify


La respuesta corta a su pregunta es que la utilidad del coffee no fue diseñada para esto; La combinación de la visualización de archivos y la concatenación es en realidad bastante compleja. Espere herramientas de compilación más sofisticadas para CoffeeScript en un futuro próximo; hasta entonces, es posible que desee realizar las compilaciones de su proyecto escribiendo un script Cakefile o Ruby Watchr. Luego, también puede incluir minificación, generación de documentación y cualquier otra cosa que necesite para su proyecto particular (sin mencionar la garantía de una orden de concatenación particular).


Prueba jitter

https://github.com/TrevorBurnham/jitter

Mira un directorio de archivos .coffee, y cuando detecta que un archivo ha cambiado, automáticamente lo vuelve a compilar en .js

jitter / path / to / coffee / dir / path / to / js / dir

Lo he estado probando con un proyecto usando coffescript y sencha touch, parece funcionar bastante bien. No se ocupa del problema de concatenación, pero es realmente fácil de usar para alguien que solo necesita la compilación automática.


nodemon -x coffee server.coffee hace por mí.

Instala nodemon usando npm install -g nodemon


find -type f | grep .coffee | xargs ls -t | head -n 1 | xargs coffee -cw

encuentre el último script de café modifcado y póngalo en modo de compilación-reloj


find `pwd` | grep .coffee | xargs coffee -w -c

Prueba este en el directorio raíz de la aplicación.