WatchExec
El desarrollo de software a menudo implica ejecutar los mismos comandos una y otra vez. ¡Aburrido!
watchexec es una herramienta simple y independiente que observa una ruta y ejecuta un comando cada vez que detecta modificaciones.
Ejemplo de casos de uso:
- Ejecutar automáticamente las pruebas unitarias
- Ejecutar los revestimientos/verificadores de sintaxis
- Reconstruir artefactos
Características
- Invocación y uso simple no requiere una línea de comandos críptico que involucre
xargs - Se ejecuta en OS X, Linux y Windows
- Monitorea el directorio actual y todos los subdirectorios para los cambios
- Fusiona múltiples eventos del sistema de archivos en uno, para editores que usan archivos de intercambio/copia de seguridad durante el guardar
- Carga
.gitignore y .ignore archivos - Utiliza grupos de procesos para mantener los programas de bifurcación
- Proporciona las rutas que cambiaron en variables de entorno o stdin
- No requiere un tiempo de ejecución del idioma, no vinculado a ningún idioma o ecosistema en particular
- ¡Y más!
Comienzo rápido
Mire todos los archivos JavaScript, CSS y HTML en el directorio actual y todos los subdirectorios para los cambios, ejecutando npm run build cuando se detecta un cambio:
$ watchexec -e js,css,html npm run build
Llamar/reiniciar python server.py cuando cualquier archivo de Python en el directorio actual (y todos los subdirectorios) cambia:
$ watchexec -r -e py -- python server.py
Más ejemplos de uso: ¡en el readme de CLI!
Instalar
- Con su administrador de paquetes para Arch, Debian, Homebrew, Nix, Scoop, Chocolatey ...
- Desde binario con binstall:
cargo binstall watchexec-cli - Como paquete binario preconstruido de Github
- Desde la fuente con carga:
cargo install --locked watchexec-cli
Todas las opciones en detalle: en el readMe CLI, en la ayuda en línea ( watchexec -h , watchexec --help o watchexec --manual ), y en la página manual.
Aumentar
WatchExec se combina bien con:
- checkexec: para ejecutar solo cuando los archivos de origen son más nuevos que un archivo de destino
- Solo: una alternativa moderna para
make - Systemfd: Socket-Passing en el desarrollo
Extender
- Biblioteca WatchExec: para crear herramientas más especializadas con motor WatchEC.
- WatchExec-Events: tipos de eventos para WatchExec.
- WatchExec-Signals: Tipos de señal para WatchExec.
- WatchExec-supervisor: Process Lifecycle Manager (la parte ejecutiva de WatchExec).
- ClearScreen: para borrar la pantalla (terminal) en cada plataforma.
- Grupo de comandos: para ejecutar comandos en grupos de procesos.
- Ignorar archivos: encontrar, analizar e interpretar ignorar archivos.
- Orígenes del proyecto: para encontrar el directorio de origen (s) de un proyecto.
- Notificar: Para responder a las modificaciones de archivos (terceros).
Río abajo
Seleccionados aguas abajo de WatchExec y cajas asociadas:
- Reloj de carga: un observador especializado para proyectos de óxido/carga.
- Cargo Lambda: una herramienta de desarrollo para funciones de lambda de AWS con óxido.
- Create-Rust-App: una plantilla para aplicaciones web de Rust+React.
- Dotter: un administrador de dotfile.
- GHCIWatch: un observador especializado para proyectos de Haskell.
- Tectónico: un sistema tipográfico TEX/látex.