Introdução ao Extension.js
- O Extension.js é uma ferramenta de desenvolvimento de extensões para diferentes navegadores no formato plug-and-play, sem necessidade de configuração
- Suporta TypeScript, WebAssembly, React e JavaScript moderno por padrão, permitindo criar extensões multiplataforma
Criando uma nova extensão
Usando as Chrome Extension Samples
Usando os Chrome Extension Samples no Microsoft Edge
Executando complementos da Mozilla no Edge
Usando o Extension.js em extensões existentes
- Se a extensão existente já usa um gerenciador de pacotes, é possível instalar o pacote do Extension.js e começar a executar scripts após a instalação
- Instale o
extension como devDependency
npm install extension --save-dev
- Conecte os scripts do npm aos comandos do Extension.js
{
"scripts": {
"build": "extension build",
"dev": "extension dev",
"start": "extension start"
},
"devDependencies": {
"extension": "latest"
}
}
- Use
npm run dev para desenvolvimento, npm run start para visualização em modo de produção e npm run build para build de produção
Usando um navegador específico para desenvolvimento
- Estado de suporte de navegadores desktop
| Brave |
Chrome |
Edge |
Firefox |
Opera |
Safari |
Vivaldi |
| ☑️ |
✅ |
✅ |
⛔️ |
☑️ |
⛔️ |
☑️ |
- ☑️ = funciona com alta chance, mas o launcher do navegador não é suportado
- Estado de suporte de navegadores móveis
| Firefox Android |
iOS Safari |
| ⛔️ |
⛔️ |
- Para direcionar um navegador específico, passe a flag
--browser para os comandos dev/start
- Ex.:
npx extension dev path/to/extension --browser=edge
- Dica: passar
--browser="all" carrega todos os navegadores disponíveis de uma vez
Opinião da GN⁺
- O Extension.js parece uma ferramenta poderosa para desenvolvimento de extensões multiplataforma. Em especial, por poder ser usado imediatamente sem configuração e permitir suporte simples a vários navegadores, ele pode reduzir bastante o tempo de desenvolvimento.
- É também uma grande vantagem poder aproveitar exemplos existentes, como os do Chrome Extension Samples e do MDN WebExtensions Examples. Isso parece facilitar bastante o início para desenvolvedores iniciantes.
- No entanto, alguns navegadores, como Firefox ou Safari, parecem ainda não ser totalmente suportados, então é bom ter cautela. Se o foco for um único navegador, pode valer a pena considerar o uso das ferramentas de desenvolvimento específicas desse navegador.
- Fico curioso para ver os prós e contras em comparação com ferramentas similares como Plasmo e a WebExtensions API. Em especial, parece necessário verificar como fica o suporte a especificações recentes como o Manifest V3.
1 comentários
Comentários do Hacker News
Plasmosafari-web-extension-converter