Introducción a Extension.js
- Extension.js es una herramienta de desarrollo de extensiones cross-browser de tipo plug and play que no requiere configuración.
- Soporta TypeScript, WebAssembly, React y JavaScript moderno para crear extensiones cross-browser.
Crear una nueva extensión
Usar Chrome Extension Samples
Usar Chrome Extension Samples en Microsoft Edge
Ejecutar complementos de Mozilla en Edge
Usar Extension.js en una extensión existente
- Si tu extensión existente ya usa un administrador de paquetes, podés instalar Extension.js y agregar scripts para ejecutarlo.
- Instalar extension como
devDependency
npm install extension --save-dev
- Conectar los scripts de npm con los comandos de Extension.js
{
"scripts": {
"build": "extension build",
"dev": "extension dev",
"start": "extension start"
},
"devDependencies": {
"extension": "latest"
}
}
- Durante el desarrollo usá
npm run dev, para visualización de producción npm run start, y para build de producción npm run build.
Uso de un navegador específico para desarrollo
- Estado de compatibilidad de navegadores de escritorio
| Brave |
Chrome |
Edge |
Firefox |
Opera |
Safari |
Vivaldi |
| ☑️ |
✅ |
✅ |
⛔️ |
☑️ |
⛔️ |
☑️ |
- ☑️ = alta probabilidad de funcionamiento, pero sin soporte para el launcher del navegador
- Estado de compatibilidad de navegadores móviles
| Firefox Android |
iOS Safari |
| ⛔️ |
⛔️ |
- Al dirigir la ejecución a un navegador específico, pasá la bandera
--browser a los comandos dev/start.
- Ej:
npx extension dev path/to/extension --browser=edge
- Sugerencia: al pasar
--browser="all" se cargan todos los navegadores disponibles de una vez.
Opinión de GN⁺
- Extension.js se ve como una herramienta poderosa para desarrollar extensiones cross-browser. En especial, al poder usarla de inmediato sin configuración y soportar varios navegadores con facilidad, podría reducir mucho el tiempo de desarrollo.
- También es una ventaja grande poder aprovechar muestras existentes como Chrome Extension Samples o MDN WebExtensions Examples. Incluso desarrolladores principiantes pueden empezar con relativa facilidad.
- Sin embargo, parece que todavía hay navegadores como Firefox o Safari que no están totalmente soportados, así que conviene tener cuidado. Si el objetivo es un navegador específico, conviene evaluar usar las herramientas nativas de ese navegador.
- Me intriga ver los pros y contras de comparar con herramientas similares como Plasmo y WebExtensions API. En particular, parece necesario comprobar si soporta especificaciones nuevas como Manifest V3.
1 comentarios
Comentario de Hacker News
Plasmo.safari-web-extension-converter.