WatchExec
O desenvolvimento de software geralmente envolve a execução dos mesmos comandos repetidamente. Tedioso!
watchexec é uma ferramenta simples e independente que assiste a um caminho e executa um comando sempre que detecta modificações.
Exemplo de uso de casos:
- Execute os testes de unidade automaticamente
- Executar linters/verificadores de sintaxe
- Reconstruir artefatos
Características
- Invocação e uso simples, não requer uma linha de comando enigmática envolvendo
xargs - É executado no OS X, Linux e Windows
- Monitora o diretório atual e todos os subdiretos para alterações
- Coalesces vários eventos do sistema de arquivos em um, para editores que usam arquivos de troca/backup durante a salvamento
- Carrega arquivos
.gitignore e .ignore - Usa grupos de processo para manter os programas de bifurrão
- Fornece os caminhos que mudaram nas variáveis de ambiente ou stdin
- Não requer um tempo de execução do idioma, não vinculado a nenhum idioma ou ecossistema específico
- E mais!
Início rápido
Assista a todos os arquivos JavaScript, CSS e HTML no diretório atual e em todos os subdiretos para alterações, executando npm run build quando uma alteração é detectada:
$ watchexec -e js,css,html npm run build
Ligue/reinicie python server.py quando qualquer arquivo python no diretório atual (e em todos os subdiretos) muda:
$ watchexec -r -e py -- python server.py
Mais exemplos de uso: no CLI Readme!
Instalar
- Com seu gerente de pacotes para Arch, Debian, Homebrew, Nix, Scoop, Chocolatey…
- Do binário com Binstall:
cargo binstall watchexec-cli - Como pacote binário pré-construído do GitHub
- Da fonte com carga:
cargo install --locked watchexec-cli
Todas as opções em detalhes: no CLI Readme, na ajuda on -line ( watchexec -h , watchexec --help ou watchexec --manual ) e na página manual.
Aumentar
WatchExec combina bem com:
- CHECKEXEC: Para executar apenas quando os arquivos de origem são mais novos que um arquivo de destino
- Apenas: uma alternativa moderna para
make - SystemFD: Passagem de soquete em desenvolvimento
Estender
- Biblioteca WatchExec: para criar ferramentas mais especializadas em WatchExec.
- WatchExec-Events: Tipos de eventos para WatchExec.
- WatchExec-signals: Tipos de sinal para WatchExec.
- WatchExec-Supervisor: Gerenciador de ciclo de vida do processo (a parte Exec do WatchExec).
- ClearScreen: para limpar a tela (terminal) em todas as plataformas.
- Grupo de comando: para executar comandos em grupos de processo.
- Ignore Arquivos: para encontrar, analisar e interpretar os arquivos ignorar.
- Origens do projeto: para encontrar o (s) origem (s) diretório (s) de um projeto.
- Notificar: para responder às modificações de arquivo (terceiros).
A jusante
A jusante selecionado do WatchExec e caixas associadas:
- Relógio de carga: um observador especializado para projetos de ferrugem/carga.
- Carga Lambda: Uma ferramenta de desenvolvimento para funções da AWS lambda movidas a ferrugem.
- Create-Rust-App: Um modelo para aplicativos Web Rust+React.
- Dotter: um gerente do DotFile.
- GHCIWATCH: Um observador especializado para projetos Haskell.
- tectônico: um sistema de tipotas Tex/LaTex.