npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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

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

  1. Varre a pasta /public recursivamente em busca de imagens com extensão .png, .jpg ou .jpeg.
  2. Converte cada imagem para .webp usando a biblioteca Sharp, com qualidade de 80%.
  3. Deleta o arquivo original após a conversão bem-sucedida.
  4. Varre a pasta /src recursivamente em busca de arquivos de código (.js, .jsx, .ts, .tsx, .css, .scss, .json).
  5. Substitui todas as referências a .png, .jpg e .jpeg por .webp nesses arquivos.

🚀 Como usar

Pré-requisitos

  • Node.js instalado
  • Projeto com estrutura de pastas /public e /src

Instalação

Clone ou copie este repositório e instale as dependências:

npm install

Você pode também instalar o pacote globalmente para rodar em outros projetos na sua máquina:

npm install -g image-webp-optimizer

Seguido de:

npx image-webp-optimizer

dentro da raíz do projeto.

Execução

Navegue até a raiz do projeto que deseja otimizar e execute:

npx optimize-images

Ou, se preferir rodar diretamente pelo caminho do script:

node /caminho/para/image-optimizer/index.js

O 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 sharp com quality: 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, .jpg e .jpeg seguidos de ", ', ` ou ? (para suportar query strings em URLs).

⚠️ Limitações

  • Apenas /public e /src: O script só procura imagens dentro da pasta /public e referências dentro da pasta /src. Imagens ou referências fora dessas pastas não serão processadas.
  • Extensões suportadas: Somente .png, .jpg e .jpeg. Outros formatos como .gif, .svg, .bmp, .tiff etc. 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 .webp existentes: O script não verifica se já existe um .webp correspondente antes de converter — ele sempre reconverte e sobrescreve.
  • Arquivos de código verificados: Apenas arquivos .js, .jsx, .ts, .tsx, .css, .scss e .json são varridos para atualização de referências. Arquivos como .html, .md, .env etc. não são atualizados.

🛡️ Recomendação importante

⚠️ Faça uma cópia da pasta /public antes 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