无法更新任何插件,不是有效的科尔多瓦平台?
Posted
技术标签:
【中文标题】无法更新任何插件,不是有效的科尔多瓦平台?【英文标题】:Can't update any plugins, not a valid cordova platform? 【发布时间】:2018-05-12 04:51:05 【问题描述】:我在尝试使用 mac os 终端更新 cordova 中的任何插件时遇到问题。当我尝试运行命令cordova plugin add xxxxxxx
时,它告诉我我的android/ios 都不是有效的cordova 平台。
我的 Node 版本是 v9.2.0,NPM 版本是 5.5.1,Cordova 版本是 7.1.0。我不知道如何进行。任何人都可以提供一些见解吗?
➜ steve git:(master) ✗ cordova plugin add https://github.com/danwilson/google-analytics-plugin.git
Installing "cordova-plugin-google-analytics" for ios
Unable to load PlatformApi from platform. Error: Cannot find module '/Users/rsteve/Desktop/steve/platforms/ios/cordova/Api.js'
Failed to install 'cordova-plugin-google-analytics': Error [ERR_UNHANDLED_ERROR]: Unhandled error. (The platform "ios" does not appear to be a valid cordova platform. It is missing API.js. ios not supported.)
at EventEmitter.emit (events.js:140:19)
at EventEmitter.module.exports.emit (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/events.js:71:17)
at Object.getPlatformApiFunction (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js:500:20)
at Object.getPlatformApi (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/platforms.js:55:25)
at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:593:29)
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:357:28
at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:509:49
错误:未处理的错误。 (平台“ios”似乎不是有效的 cordova 平台。它缺少 API.js。不支持 ios。)
【问题讨论】:
听起来node和Cordova不兼容,可以试试node 6吗?另外,您使用的是什么cordova-ios 和cordova-android 平台? 这很奇怪,因为通常我没有得到 git:(master)。它通常只是文件夹路径。我如何才能找到 cordova-ios + cordova-android 的版本? 使用cordova platforms
命令
ios 4.5.4。安卓平台没有安装。
如果添加平台时安装了节点 9,则存在兼容性问题。如果它是使用旧版本的节点创建的,请尝试再次删除并添加 ios 平台。解决方法可能是将节点降级到 6 或将 cordova 降级到 6.0.0
【参考方案1】:
根据我的经验,以下解决了几乎所有 cordova 插件/平台问题:
cordova plugins --save
cordova platforms --save
rm -rf platforms
rm -rf plugins
cordova prepare
它通过以下方式做到这一点:
-
保存插件配置
保存平台配置
删除平台文件夹
删除插件文件夹
重新安装所有平台和插件
【讨论】:
【参考方案2】:cordova / ionic 似乎不支持您的节点版本
解决方案:
降级节点:降级您的节点版本(使用推荐的节点 js 版本)或尝试使用节点 6.x.x
安装 Git:您的机器上安装了 Git 吗? Cordova 需要 git 从服务器克隆插件
权限:确保您的文件夹具有读/写权限;或尝试使用管理员权限
直接从 Git 安装:您可以使用git clone plugin-url
直接从 git 安装插件,然后安装 cordova plugin add -d /plugin-path/
【讨论】:
不幸的是,我使用了 node v6.6.0 并且仍然无法正常工作。我相信安装了 git 是的,但它需要更新吗?我已经尝试了具有管理员权限的 sudo,但仍然是同样的问题。 尝试删除平台cordova platform rm ios
,然后使用cordova platform add ios@latest
再次添加以上是关于无法更新任何插件,不是有效的科尔多瓦平台?的主要内容,如果未能解决你的问题,请参考以下文章