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:Crie um Diretório Temporário para Empacotamento
Crie um diretório temporário para instalar o Mellowtel e gerar o bundle:Empacote o Mellowtel com esbuild
De 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 de navegador e minimiza a saída
- Cria
mellowtel.jsno diretório de empacotamento
Copie o Bundle para Sua Extensão
Após executar o comando esbuild, copie o arquivo gerado para o diretório da sua extensão:Configure Seu Manifest (Ambas as Opções)
Independentemente de qual opção você escolheu acima, configure seumanifest.json para incluir o bundle 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.
Use o 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) - Habilite o “Modo de desenvolvedor”
- Clique em “Carregar sem compactação” e selecione a pasta da sua extensão