Ionic/Angular项目运行报错:Geolocation类型不存在'ɵmod'属性
错误原因
该报错本质是@ionic-native/geolocation封装包与当前项目的Angular/Ionic版本不兼容:Ionic 6及以上版本、Angular 13及以上版本不再适配旧版@ionic-native系列插件,旧版插件未导出高版本Angular要求的ɵmod属性,因此运行时抛出异常。
解决步骤
- 卸载现有旧版本依赖
执行以下命令移除旧的插件包:
npm uninstall @ionic-native/geolocation cordova-plugin-geolocation
- 安装适配新版本的插件包
使用官方维护的新版插件封装包:
npm install @awesome-cordova-plugins/core @awesome-cordova-plugins/geolocation cordova-plugin-geolocation
- 修改所有导入路径
将app.module.ts和对应页面page.ts中Geolocation的导入语句,从:
import { Geolocation } from '@ionic-native/geolocation/ngx';
替换为:
import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';
- 核对模块配置
确认app.module.ts的providers数组中已添加Geolocation(你当前的配置逻辑是正确的,修改导入路径后无需调整此处结构)。
额外排查项
如果修改后仍报错,执行以下操作:
- 删除项目根目录的
node_modules文件夹和package-lock.json文件,重新执行npm install安装所有依赖 - 执行
ionic serve前清空浏览器缓存,避免旧打包代码干扰 - 确认未将
Geolocation错误添加到app.module.ts的imports数组中,该服务只能放在providers数组内
内容的提问来源于stack exchange,提问作者Sean_P
相关产品推荐
相关产品推荐

