指南
关于Capacitor+ Core的教程
使用Capacitor+ (@capacitor-plus) 包
Capacitor+ 是一个自动化、始终同步的分支 Capacitor 由 Capgo维护。它提供了一个可以直接替换官方Capacitor 包的优势: 社区的 PR 和修复更快地被合并.
Why Capacitor+ 存在
ionic 团队维护 Capacitor,按照他们自己的优先级和发布计划。这意味着社区贡献 - bug 修复、改进和功能 - 可能需要几个月甚至几年才能被合并。有些从未被合并。
Capacitor+ 解决了这个问题:
- 合并分支请求 - 从主分支队列中被搁置的有价值的分支请求会被积极合并
- 持续同步 - 从主分支 Capacitor 的每次变更都会自动拉取、测试和验证
- 快速发布 - 当变更通过 CI 时,它们会自动发布到 npm 下的
@capacitor-plus范围 - 社区优先 - 你的贡献很重要,会被优先考虑
- 安全审查 - 每次更改都会由 AI 分析安全漏洞、破坏性更改和稳定性风险
可用包
| 包 | 描述 |
|---|---|
@capacitor-plus/core |
核心运行时库 |
@capacitor-plus/cli |
命令行接口 |
@capacitor-plus/android |
安卓运行时 |
@capacitor-plus/ios |
iOS 运行时 |
安装
新项目
为新项目,只需使用 Capacitor+ 包代替官方包:
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # for Android
npm install @capacitor-plus/ios # for iOS
然后初始化您的项目:
npx cap init
npx cap add android
npx cap add ios
从官方Capacitor迁移
要从官方Capacitor迁移到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
由于Capacitor+是API的完全兼容替代品,因此无需进行code修改。您的导入保持不变:
// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
如何工作
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- 每日同步: 一个GitHub动作从
ionic-team/capacitor - PR创建: 将更改提议为pull请求到
plusbranch - CI验证: 全套测试运行(lint,单元测试,iOS构建,Android构建)
- Claude Code Review: AI-powered comprehensive security analysis checks for:
- :
- Breaking API changes
- :
- :
- Malicious code patterns
- : Only if CI passes AND Claude approves (no issues detected):
- : A new version is published to __CAPGO_KEEP_0__ under: A new version is published to npm under
@capacitor-plus/*
__CAPGO_KEEP_0__
每次上游同步都会分析:
| 检查 | 描述 |
|---|---|
| 安全性 | 命令注入、XSS、路径遍历、硬编码密钥等 |
| 破坏性更改 | 删除/重命名的API、签名改变、配置格式更改 |
| 稳定性 | 空指针引用、未处理的异常、竞争条件、内存泄漏 |
| 数据安全 | 数据丢失场景、隐私违规、不安全存储 |
| Code完整性 | 被混淆的 code, 可疑的网络调用, 后门 |
如果检测到任何问题, PR 将被标记为手动审查, 并不会自动合并。
想让 PR 被合并吗?
在官方 Capacitor 仓库中有一个 PR 卡住了? 这是如何将它推入 Capacitor+:
- 打开一个问题 在 Capacitor+ 仓库 链接到您的上游 PR
- 或者直接提交 PR 到
plusbranch - 团队将审查它, 运行 CI, 如果它通过, 则合并
This way, you and others can benefit from your work immediately, without waiting for the upstream release cycle.
优点
- 立即获取 PR: 上游社区修复和特性被合并
- 保持最新: 立即获取通过 CI 的上游修复
- 安全优先: 每次变更都被审查以检查漏洞和稳定性风险
- 已验证的发布: 只有通过 CI 测试和 AI 安全审查的变更才会发布
- 替换: 与 Capacitor 相同的 API ,只是包作用域不同
- Your Voice Matters: 提交您自己的 PR 或要求特定上游 PR 被合并
示例:使用 Capacitor+ 与插件
所有官方 Capacitor 插件都可以与 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();
Capgo 插件也可以与 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' });
这就是全部!您现在拥有一个社区改进更快更新的 Capacitor 版本,应用程序将从 bug 修复和功能中受益,而不必等待官方发布周期
继续使用 Using Capacitor+ (@capacitor-plus) Packages
如果您正在使用 使用 Capacitor+ (@capacitor-plus) Packages 来规划原生插件工作,连接它与 Capacitor+ 实现 Capacitor+ 的细节 Capgo 插件目录 为产品工作流程在 Capgo 插件目录中 Capacitor 插件由 Capgo 提供 为实现细节在 Capacitor 插件由 Capgo 提供 添加或更新插件 为实现细节在添加或更新插件 Ionic Enterprise 插件替代品 为产品工作流程在 Ionic Enterprise 插件替代品