简体   繁体   中英

Can't update any plugins, not a valid cordova platform?

I have an issue when trying to update any plugin in cordova using mac os terminal. When I try to run the command cordova plugin add xxxxxxx it is telling me that both my android/ios are not valid cordova platforms.

My Node version is v9.2.0, NPM version is 5.5.1 and Cordova version is 7.1.0. I'm at a loss on how to proceed. Can anyone give some insight?

 ➜  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

Error: Unhandled error. (The platform "ios" does not appear to be a valid cordova platform. It is missing API.js. ios not supported.)

在此输入图像描述

In my experience, the following resolves almost all cordova plugin/platform issues:

cordova plugins --save
cordova platforms --save
rm -rf platforms
rm -rf plugins
cordova prepare

It does this by:

  1. saving plugin config
  2. saving platform config
  3. removing platforms folder
  4. removing plugins folder
  5. re-installing all platforms and plugins

It seems like your node version is not supported with cordova / ionic

Solution:

  • Downgrade node: Downgrade your node version (use recommended version form node js) or try with node 6.xx

  • Install Git : Have you installed Git on your machine? Cordova requires git to clone plugins from server

  • Permissions: Make sure your folder has read/write permission; or try with admin rights

  • Install directly from Git: you can install plugins directly from git by using git clone plugin-url and then install cordova plugin add -d /plugin-path/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM