Ionic 3中ionic cordova plugin add与npm install @ionic-native/plugin的区别
为什么Ionic 3安装插件需要两条命令?
嘿,这个问题问得好!我刚接触Ionic 3的时候也纳闷过,怎么突然要敲两条命令了,明明以前一条就搞定。咱们来掰扯清楚这俩命令的区别,以及为啥现在要分开执行:
两条命令各自的作用
1. ionic cordova plugin add cordova-plugin-camera
这条命令是给你的项目安装底层的Cordova原生插件。Cordova插件是用原生代码(Android用Java/Kotlin,iOS用Objective-C/Swift)写的,是真正实现相机功能的核心——比如调用系统相机、获取照片数据这些和设备硬件/系统交互的操作,全靠它。没有这层原生插件,你的Ionic前端代码根本碰不到设备的原生功能。
2. npm install --save @ionic-native/camera
这条装的是Ionic Native的TypeScript包装器,相当于给原生Cordova插件套了一层“Angular友好”的壳:
- 把原生插件的回调式API转换成Promise/Observable,完美契合Angular的异步编程习惯;
- 提供完整的TypeScript类型定义,写代码时能享受到自动补全和类型检查,减少低级错误;
- 统一了不同平台的API调用方式,不用你自己去处理Android和iOS的差异;
- 集成了Ionic的生命周期管理,帮你自动处理插件的初始化和销毁逻辑。
为啥以前一条命令就行?
在Ionic 1或者非常早期的Ionic 2版本里,旧版Ionic CLI会把这两步合并成一个ionic plugin add some-plugin命令——它会自动帮你安装对应的Cordova插件,同时匹配安装对应的Ionic Native包。
后来官方把这两步分开,主要是为了灵活性:
- 你可以单独更新Cordova插件或者Ionic Native包装器,不用强制同步升级;
- 如果有自定义的Cordova插件,你也可以自己编写对应的Ionic Native包装器来配合使用;
- 清晰区分原生层和上层Angular代码的依赖,项目结构更透明,排查问题也更方便。
简单来说,Cordova插件是“干活的底层工人”,Ionic Native包装器是“和你(Angular代码)沟通的翻译官”,俩都得配齐才能顺畅干活~
内容的提问来源于stack exchange,提问作者S.C.
相关产品推荐
相关产品推荐

