Configuração do Projeto
Comece com uma estrutura básica de extensão de navegador:Obtendo o Bundle do Mellowtel
Você tem duas opções para obter o arquivomellowtel.js para sua extensão:
Opção 1: Usar Arquivo Pré-empacotado
A maneira mais fácil de começar é usar o arquivo pré-empacotadomellowtel.js do repositório mellowtel-bundled.
- Vá para o repositório mellowtel-bundled
- Baixe o arquivo
mellowtel.js - Copie-o para o diretório da sua extensão
Opção 2: Gerar Seu Próprio Bundle
Se preferir gerar o bundle você mesmo, siga estas etapas:Criar um Diretório Temporário para Empacotamento
Crie um diretório temporário para instalar o Mellowtel e gerar o bundle:Empacotar Mellowtel com esbuild
Dentro do diretóriomellowtel-bundling, crie um único bundle que funcione tanto em service workers quanto em scripts de conteúdo:
- Toma a fonte do Mellowtel de
node_modules/mellowtel/dist/index.js - Empacota todas as dependências em um único arquivo
- Usa o formato IIFE com um nome global para compatibilidade universal
- Adiciona um rodapé para tornar a exportação padrão disponível globalmente
- Otimiza para o ambiente do navegador e minimiza a saída
- Cria
mellowtel.jsno diretório de empacotamento
Copiar o Bundle para Sua Extensão
Após executar o comando esbuild, copie o arquivo gerado para o diretório da sua extensão:Configurar Seu Manifesto (Ambas as Opções)
Independentemente da opção escolhida acima, configure seumanifest.json para incluir o bundle do Mellowtel em scripts de conteúdo:
- O campo
"type": "module"habilita importações de módulos ES no seu service worker. - No array de scripts de conteúdo,
mellowtel.jsdeve ser carregado antes decontent_script.jspara que a variável global Mellowtel esteja disponível quando seu script de conteúdo for executado.
Usar Mellowtel na Sua Extensão
Para seu service worker (background.js), importe o arquivo empacotado:Testando Sua Extensão
Para testar sua extensão:- Vá para
chrome://extensions/no Chrome (ou equivalente em outros navegadores) - Ative o “Modo de desenvolvedor”
- Clique em “Carregar sem compactação” e selecione sua pasta de extensão