Ionic 5安装Cordova插件后运行ionic serve报@ionic-native/device依赖缺失错误
报错根因
从你提供的项目配置和报错信息可以直接定位到问题:
你当前项目仅安装了@ionic-native/device插件,但所有@ionic-native生态下的TS封装插件,都必须依赖同版本的公共基础库@ionic-native/core。当前项目的package.json里完全没有这个公共依赖,Angular构建器识别到入口模块缺失必要依赖,就会直接终止编译流程,抛出退出码127的错误。
解决操作步骤
- 第一步:安装与现有插件版本匹配的
@ionic-native/core
你项目当前使用的@ionic-native/device版本是^5.31.1,属于@ionic-native 5.x分支,必须安装同大版本的core库,执行命令:npm install @ionic-native/core@^5.31.1 --save - 第二步:清理本地缓存避免旧依赖残留导致异常
依次执行以下命令重新初始化依赖:- 删除旧的node_modules目录和锁文件
- Mac/Linux 环境:
rm -rf node_modules package-lock.json - Windows PowerShell 环境:
Remove-Item node_modules, package-lock.json -Recurse -Force
- 重新拉取所有依赖:
npm install
- 第三步:验证启动
执行ionic serve启动项目,构建流程即可正常完成,不会再出现依赖缺失的报错。
后续安装同类插件的注意事项
- 安装任意@ionic-native/开头的封装插件(比如设备信息、相机、定位等模块)时,不需要每次都单独安装core,只要项目中存在同大版本的
@ionic-native/core即可,不要跨大版本混用(比如Ionic 5项目不要安装@ionic-native 6.x版本的插件或core) - 注意区分两个层级的依赖:
cordova-plugin-xxx是运行在原生端的底层代码,@ionic-native/xxx是供Angular项目调用的TS封装层,后者必须依赖core才能正常被打包识别。
内容的提问来源于stack exchange,提问作者Soham Bhatt
相关产品推荐
相关产品推荐

