image-webp-optimizer
v1.1.3
Published
A script that will use sharp to convert images, and will look for the file extensions in your project to replace them with .webp || Esse script usa o sharp para converter e otimizar imagens no projeto, ele procura dentro da public por extensoes de imagens
Downloads
15
Maintainers
Readme
🖼️ Image WebP Optimizer
Um script Node.js simples que converte automaticamente imagens .png, .jpg e .jpeg para o formato .webp e atualiza todas as referências a essas imagens no código-fonte do projeto.
📋 O que ele faz
- Varre a pasta
/publicrecursivamente em busca de imagens com extensão.png,.jpgou.jpeg. - Converte cada imagem para
.webpusando a biblioteca Sharp, com qualidade de 80%. - Deleta o arquivo original após a conversão bem-sucedida.
- Varre a pasta
/srcrecursivamente em busca de arquivos de código (.js,.jsx,.ts,.tsx,.css,.scss,.json). - Substitui todas as referências a
.png,.jpge.jpegpor.webpnesses arquivos.
🚀 Como usar
Pré-requisitos
- Node.js instalado
- Projeto com estrutura de pastas
/publice/src
Instalação
Clone ou copie este repositório e instale as dependências:
npm installVocê pode também instalar o pacote globalmente para rodar em outros projetos na sua máquina:
npm install -g image-webp-optimizerSeguido de:
npx image-webp-optimizerdentro da raíz do projeto.
Execução
Navegue até a raiz do projeto que deseja otimizar e execute:
npx optimize-imagesOu, se preferir rodar diretamente pelo caminho do script:
node /caminho/para/image-optimizer/index.jsO script deve ser executado na raiz do projeto alvo (onde ficam as pastas /public e /src).
⚙️ Como funciona internamente
Projeto alvo/
├── public/ ← Imagens .png/.jpg/.jpeg são convertidas para .webp aqui
│ └── ...
└── src/ ← Referências a imagens nos arquivos de código são atualizadas aqui
└── ...- A conversão usa
sharpcomquality: 80, que oferece um bom equilíbrio entre qualidade visual e tamanho de arquivo. - A substituição de referências usa uma expressão regular que detecta
.png,.jpge.jpegseguidos de",',`ou?(para suportar query strings em URLs).
⚠️ Limitações
- Apenas
/publice/src: O script só procura imagens dentro da pasta/publice referências dentro da pasta/src. Imagens ou referências fora dessas pastas não serão processadas. - Extensões suportadas: Somente
.png,.jpge.jpeg. Outros formatos como.gif,.svg,.bmp,.tiffetc. são ignorados. - Substituição por regex: A atualização de referências no código é feita via expressão regular simples. Referências dinâmicas (ex: strings montadas em tempo de execução com concatenação ou template literals complexos) podem não ser detectadas.
- Sem rollback automático: Uma vez que o script é executado, os arquivos originais são deletados permanentemente. Não há desfazer automático.
- Sem suporte a
.webpexistentes: O script não verifica se já existe um.webpcorrespondente antes de converter — ele sempre reconverte e sobrescreve. - Arquivos de código verificados: Apenas arquivos
.js,.jsx,.ts,.tsx,.css,.scsse.jsonsão varridos para atualização de referências. Arquivos como.html,.md,.envetc. não são atualizados.
🛡️ Recomendação importante
⚠️ Faça uma cópia da pasta
/publicantes de executar o script!
Como o script deleta os arquivos originais após a conversão, se algo não sair como esperado (falha de conversão, imagem corrompida, etc.), você não terá como recuperar as imagens originais sem um backup.
# Exemplo: copiar a pasta public antes de rodar o script (Windows)
xcopy /E /I public public_backup
# Exemplo no Linux/macOS
cp -r public public_backup📦 Dependências
| Pacote | Versão | Descrição |
|--------|--------|-----------|
| sharp | ^0.34.5 | Biblioteca de processamento de imagens de alta performance |
👤 Autor
Matheus Henrique
📄 Licença
ISC
