ionic-team / ionic-team/ionic-cli

UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token < in JSON at postion 83

Open
#3,076 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2k
Forks
681
PR merge metrics
No merged PRs in 30d

Description

Description:
Unable to install cordova plugin.

Steps to Reproduce:
running the following command in my terminal: ionic cordova plugin add cordova-plugin-google-analytics

Output:

> cordova plugin add cordova-plugin-google-analytics --save
(node:3095) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token < in JSON at position 83
    at JSON.parse (<anonymous>)
    at getJson (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/metadata.js:29:31)
    at Object.exports.save_fetch_metadata (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/util/metadata.js:56:24)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:203:18
    at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:749:13)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:509:49
    at flush (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:108:17)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
(node:3095) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:3095) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


My ionic info:

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.19.2
    ionic (Ionic CLI) : 3.20.0

global packages:

    cordova (Cordova CLI) : 8.0.0

local packages:

    @ionic/app-scripts : 3.1.7-201801172029
    Cordova Platforms  : android 7.0.0 ios 4.5.4
    Ionic Framework    : ionic-angular 3.9.1-201711081842

System:

    Android SDK Tools : 26.1.1
    ios-deploy        : 1.9.2
    Node              : v8.11.1
    npm               : 5.6.0
    OS                : macOS High Sierra
    Xcode             : Xcode 9.2 Build version 9C40b

Environment Variables:

    ANDROID_HOME : /Users/gcvanrooyen25gmail.com/Library/Android/sdk

Misc:

    backend : pro

Other Information:
package Json

{
  "name": "sidemenu_ionic",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "config": {
    "ionic_webpack": "./webpack.config.js"
  },
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "start": "concurrently \"ionic-app-scripts serve --dev\" \"NODE_ENV=dev nodemon server.js\"  ",
    "builduat": "concurrently \"ionic-app-scripts build --dev\" \"NODE_ENV=dev nodemon server.js\"  ",
    "build": "ionic-app-scripts build --prod",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build --prod",
    "ionic:serve": "ionic-app-scripts serve",
    "prod": "concurrently \"ionic-app-scripts serve --prod\" \"NODE_ENV=prod node initialize_admin.js\" ",
    "server": " NODE_ENV='dev' nodemon  ./server.js "
  },
  "dependencies": {
    "@angular/common": "^5.2.1",
    "@angular/compiler": "5.2.1",
    "@angular/compiler-cli": "5.2.1",
    "@angular/core": "5.2.1",
    "@angular/forms": "5.2.1",
    "@angular/http": "5.2.1",
    "@angular/platform-browser": "5.2.1",
    "@angular/platform-browser-dynamic": "5.2.1",
    "@ionic-native/core": "4.4.0",
    "@ionic-native/google-analytics": "^4.7.0",
    "@ionic-native/splash-screen": "4.4.0",
    "@ionic-native/status-bar": "4.4.0",
    "@ionic/pro": "1.0.16",
    "@ionic/storage": "2.1.3",
    "aws-sdk": "^2.200.0",
    "body-parser": "^1.18.2",
    "concurrently": "^3.5.1",
    "cordova-plugin-google-analytics": "^1.8.3",
    "defaultable": "^0.7.2",
    "dns": "^0.2.2",
    "express": "^4.16.2",
    "firebase": "^4.8.0",
    "firebase-admin": "^5.11.0",
    "firebase-functions": "^0.9.1",
    "heroku-ssl-redirect": "0.0.4",
    "ionic-angular": "nightly",
    "ionicons": "3.0.0",
    "nodemailer": "^4.4.2",
    "nodemailer-ses-transport": "^1.5.1",
    "process": "^0.11.10",
    "pug": "^2.0.1",
    "rxjs": "5.5.2",
    "sendpulse-api": "^1.0.3",
    "shortid": "^2.2.8",
    "sw-toolbox": "3.6.0",
    "swig": "^1.4.2",
    "swig-email-templates": "^5.0.1",
    "zone.js": "0.8.18"
  },
  "devDependencies": {
    "@ionic/app-scripts": "nightly",
    "chokidar": "^2.0.3",
    "nodemon": "^1.14.11",
    "rollup-plugin-replace": "^2.0.0",
    "typescript": "2.4.2"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-google-analytics": {}
    }
  }
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with ionic cordova plugin add cordova-plugin-google-analytics, then inspect cordova-lib/src/plugman/util/metadata.js at getJson and save_fetch_metadata, followed by cordova-lib/src/plugman/fetch.js. Done means the plugin installation completes without the JSON parsing and unhandled-rejection warnings shown here.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, node.js
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.