Présentation d’Extension.js
- Extension.js est un outil de développement d’extensions web cross-browser de type plug-and-play qui ne nécessite aucune configuration.
- Il prend en charge par défaut TypeScript, WebAssembly, React et le JavaScript moderne, ce qui permet de créer des extensions multi-navigateurs.
Créer une nouvelle extension
Utiliser Chrome Extension Samples
Utiliser les Chrome Extension Samples sur Microsoft Edge
Exécuter des modules Mozilla sur Edge
Utiliser Extension.js pour une extension existante
- Si une extension existante utilise déjà un gestionnaire de paquets, vous pouvez l’installer puis exécuter les scripts générés par Extension.js.
- Installez
extension en tant que devDependency
npm install extension --save-dev
- Raccordez les scripts npm aux commandes Extension.js
{
"scripts": {
"build": "extension build",
"dev": "extension dev",
"start": "extension start"
},
"devDependencies": {
"extension": "latest"
}
}
- Utilisez
npm run dev en développement, npm run start pour la visualisation en production et npm run build pour la création du build de production.
Utiliser un navigateur spécifique pour le développement
- Prise en charge des navigateurs de bureau
| Brave |
Chrome |
Edge |
Firefox |
Opera |
Safari |
Vivaldi |
| ☑️ |
✅ |
✅ |
⛔️ |
☑️ |
⛔️ |
☑️ |
- ☑️ = fonctionnel avec une forte probabilité, mais le lanceur de navigateur n’est pas pris en charge
- Prise en charge des navigateurs mobiles
| Firefox Android |
iOS Safari |
| ⛔️ |
⛔️ |
- Quand vous ciblez un navigateur précis, passez le flag
--browser aux commandes dev/start
- Exemple :
npx extension dev path/to/extension --browser=edge
- Astuce : passer
--browser="all" charge tous les navigateurs disponibles en une seule fois.
Opinion de GN⁺
- Extension.js paraît être un outil puissant pour le développement d’extensions cross-browser. Le fait qu’il puisse être utilisé immédiatement sans configuration et de manière multi-navigateurs pourrait réduire considérablement le temps de développement.
- Le fait aussi de pouvoir réutiliser des exemples existants comme Chrome Extension Samples ou MDN WebExtensions Examples est un atout important. Les développeurs débutants devraient pouvoir démarrer facilement.
- Cependant, il semble que certains navigateurs comme Firefox ou Safari ne soient pas encore totalement pris en charge, il faut donc rester prudent. Si vous ciblez un navigateur précis uniquement, il peut être pertinent d’utiliser les outils de développement dédiés à ce navigateur.
- Je suis curieux de connaître les avantages et les inconvénients d’Extension.js par rapport à des outils similaires comme Plasmo ou WebExtensions API. Il faut aussi vérifier son support des spécifications récentes, notamment Manifest V3.
1 commentaires
Avis sur Hacker News
Plasmosafari-web-extension-converter