Introdução
Em tempos de servidores compartilhados onde cada recurso utilizado dói no bolso no final do mês, é muito importante compactar arquivos, seja para servi-los e economizar na transferência, seja para armazenar em disco. Existem algumas alternativas, uma delas é o Brotli, um projeto do Google que eu escrevi aqui, outra que também é suportada pela maioria dos navegadores é o GZIP e para isso existe uma ferramenta muito tranquila de implementar e que também pode ser utilizada no shell.
Solução
A ferramenta em questão é o Gzipme mantida por Caio Ribeiro Pereira sob licença MIT.
Implementação
No diretório do seu projeto, instale o pacote com o npm.
npm install gzipme
import gzipme from 'gzipme' // Comprime "file.txt" para "file.txt.gz" no mesmo diretório. gzipme("file.txt"); // Comprime "file.txt" e sobrescreve o arquivo "file.txt" no mesmo diretório gzipme("file.txt", true); // Comprime "file.txt" com o nome "compressed.txt" no mesmo diretório gzipme("file.txt", "compressed.txt"); // Comprime "file.txt" usando o modo de "melhor" compressão (arquivo menor mas a compressão é lenta). gzipme("file.txt", false, "best"); // Comprime "file.txt" usando o modo "rápido" de compressão (arquivo maior mas compressão rápida) gzipme("file.txt", false, "fast");
Para usar no shell do seu sistema operacional, basta instalar em modo global.
npm install -g gzipme
Os comandos são bem semelhantes às funções.
# O mesmo que 'gzipme("file.txt")'. gzipme file.txt # O mesmo que 'gzipme("file.txt", true)'. gzipme -o file.txt # O mesmo que 'gzipme("file.txt", "compressed.txt")'. gzipme -O compressed.txt file.txt # O mesmo que 'gzipme("file.txt", false, "best")'. gzipme -c best file.txt # O mesmo que 'gzipme("file.txt", false, "fast")'. gzipme -c fast file.txt
É isso aí! Tente aplicar esse conhecimento conforme o seu projeto necessita 🙂
Grande abraço!