Guide
Tutoriel sur Capacitor+ Core
Utilisation de Capacitor+ (@capacitor-plus) Packages
Capacitor+ est une branche automatisée, toujours synchronisée de Capacitor entretenu par Capgo. Il fournit une substitution de remplacement directe pour les packages officiels Capacitor avec un avantage clé : les PRs et les correctifs de la communauté sont fusionnés plus rapidement.
Pourquoi Capacitor+ Existe
L'équipe Ionic gère Capacitor en fonction de leurs propres priorités et de leur calendrier de publication. Cela signifie que les contributions de la communauté - corrections de bogues, améliorations et fonctionnalités - peuvent attendre des mois ou même des années avant d'être fusionnées. Certains ne sont jamais intégrés.
Capacitor+ résout ce problème en :
- Fusionner les PR de Forks - Les PR précieux bloqués dans la file d'attente de l'amont sont fusionnés activement
- Synchronisation Continue - Chaque changement de l'amont Capacitor est automatiquement récupéré, testé et vérifié
- Lancements Rapides - Lorsque les changements passent par la CI, ils sont automatiquement publiés sur npm sous le
@capacitor-plusscope - Communauté en Premier - Vos contributions comptent et sont priorisées
- Revues de Sécurité - Toute modification est analysée par l'IA pour les vulnérabilités de sécurité, les modifications de rupture et les risques de stabilité
Packages disponibles
| Package | Description |
|---|---|
@capacitor-plus/core |
Bibliothèque de runtime de base |
@capacitor-plus/cli |
Interface de ligne de commande |
@capacitor-plus/android |
Runtime Android |
@capacitor-plus/ios |
Runtime iOS |
Installation
Nouveau projet
Pour un nouveau projet, utilisez simplement les packages Capacitor+ au lieu des officiels :
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # for Android
npm install @capacitor-plus/ios # for iOS
Initialisez ensuite votre projet :
npx cap init
npx cap add android
npx cap add ios
Migration depuis l'officiel Capacitor
Pour migrer un projet existant depuis l'officiel Capacitor vers Capacitor+:
# Remove official packages
npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios
# Install Capacitor+ packages
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # if using Android
npm install @capacitor-plus/ios # if using iOS
Puisque Capacitor+ est un remplacement sans modification avec le même API, aucune modification code n'est requise. Vos imports restent les mêmes :
// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
Comment ça marche
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- Synchronisation quotidienne : Une action GitHub récupère les dernières modifications depuis
ionic-team/capacitor - Création de PR : Les modifications sont proposées sous forme de requêtes de fusion vers le
plusbranch - Validation CI : Tout le jeu de tests est exécuté (lint, tests unitaires, build iOS, build Android)
- Claude Code ReviewAnalyse de sécurité complète alimentée par l'IA vérifie :
- Vulnérabilités de sécurité (injection, XSS, etc.)
- Risques de rupture de API et problèmes de stabilité
- Préoccupations concernant l'intégrité et la confidentialité des données
- Modèles malveillants de __CAPGO_KEEP_0__
- Malicious code patterns
- Seul si CI passe ET Claude approuve (aucun problème détecté)Auto-Publish
- Une nouvelle version est publiée sur __CAPGO_KEEP_0__ sous: A new version is published to npm under
@capacitor-plus/*
Chaque synchronisation upstream est analysée pour :
targetLanguage
| Vérifiez | Description |
|---|---|
| Sécurité | Injection de commandes, XSS, parcours de chemins, secrets fixés, etc. |
| Changements majeurs | APIs supprimées/renommées, changements de signatures, modifications de format de configuration |
| Stabilité | Références à null, exceptions non gérées, conditions de course, fuites de mémoire |
| Sécurité des données | Scénarios de perte de données, violations de la vie privée, stockage non sécurisé |
| Code Intégrité | Intégrité obfusquée code, appels réseau suspects, backdoors |
Si des problèmes sont détectés, le PR est signalé pour une revue manuelle et ne sera PAS fusionné automatiquement.
Voulez-vous que votre PR soit fusionné ?
Avez-vous un PR bloqué dans le référentiel officiel Capacitor ? Voici comment le faire passer dans Capacitor+:
- Ouvrez une issue dans le Capacitor+ référentiel en liant votre PR upstream
- Ou soumettez le PR directement à la
plusbranche - L'équipe le passera en revue, exécutera la CI et le fusionnera si cela passe
De cette façon, vous et les autres pouvez bénéficier de votre travail immédiatement, sans attendre le cycle de publication upstream.
Avantages
- Obtenez les PR bloqués maintenant : Les correctifs et les fonctionnalités de la communauté qui attendent l'amont sont fusionnés
- Restez à jour : Obtenez les correctifs d'amont dès qu'ils passent les tests CI
- Sécurité en premier : Chaque changement est examiné pour les vulnérabilités et les risques de stabilité
- Versions vérifiées : Seules les modifications qui passent à la fois par les tests CI et la revue de sécurité AI sont publiées
- Remplacement en un coup : Même API que Capacitor, mais avec un scope de package différent
- Votre voix compte: Soumettez vos propres PRs ou demandez des PRs upstream spécifiques pour être fusionnés
Exemple : Utilisation de Capacitor+ avec les Plugins
Tous les plugins officiels Capacitor fonctionnent de manière fluide avec Capacitor+:
import { Capacitor } from '@capacitor/core';
import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';
// Everything works exactly the same
const platform = Capacitor.getPlatform();
const photo = await Camera.getPhoto({
resultType: CameraResultType.Uri
});
const position = await Geolocation.getCurrentPosition();
Les plugins Capgo fonctionnent également parfaitement avec Capacitor+:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Use Capgo plugins with Capacitor+
await CapacitorUpdater.notifyAppReady();
await ScreenOrientation.lock({ orientation: 'portrait' });
C'est tout ! Vous avez maintenant une version mise à jour plus rapide de Capacitor avec des améliorations de la communauté intégrées plus rapidement. Vos applications bénéficieront de correctifs de bogues et de fonctionnalités sans attendre le cycle de mise à jour officiel.