how to run an ionic app that was never updated in five years

257 Views Asked by At

Last week my squad give me a huge mission. Run an app created 5 years ago created with ionic angular,

The problem is the given project was never updated in five years. I don't have an idea of how to run this app, because everything I tried failed in any ways

{
  "name": "appname",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^7.2.2",
    "@angular/core": "^7.2.2",
    "@angular/forms": "^7.2.2",
    "@angular/http": "^7.2.2",
    "@angular/platform-browser": "^7.2.2",
    "@angular/platform-browser-dynamic": "^7.2.2",
    "@angular/router": "^7.2.2",
    "@ionic-native/camera": "^5.5.1",
    "@ionic-native/core": "^5.10.0",
    "@ionic-native/device": "^5.5.1",
    "@ionic-native/fcm": "^5.15.1",
    "@ionic-native/file": "^5.10.0",
    "@ionic-native/file-path": "^5.5.1",
    "@ionic-native/file-transfer": "^5.10.0",
    "@ionic-native/geolocation": "^5.5.1",
    "@ionic-native/in-app-browser": "^5.5.1",
    "@ionic-native/native-page-transitions": "^5.12.0",
    "@ionic-native/network": "^5.5.1",
    "@ionic-native/qr-scanner": "^5.5.1",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/sqlite": "^5.5.1",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic-native/transfer": "^3.14.0",
    "@ionic/angular": "^4.11.10",
    "cordova": "^8.1.0",
    "cordova-android": "^7.1.4",
    "cordova-browser": "6.0.0",
    "cordova-ios": "^4.5.5",
    "cordova-plugin-add-swift-support": "^2.0.2",
    "cordova-plugin-camera": "4.0.3",
    "cordova-plugin-device": "2.0.2",
    "cordova-plugin-file": "6.0.1",
    "cordova-plugin-file-transfer": "1.7.1",
    "cordova-plugin-filepath": "1.5.4",
    "cordova-plugin-geolocation": "4.0.1",
    "cordova-plugin-inappbrowser": "3.0.0",
    "cordova-plugin-ionic": "^5.4.0",
    "cordova-plugin-ionic-keyboard": "^2.1.3",
    "cordova-plugin-ionic-webview": "^4.0.1",
    "cordova-plugin-network-information": "2.0.1",
    "cordova-plugin-qrscanner": "3.0.1",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "cordova-sqlite-storage": "3.2.0",
    "core-js": "^2.5.4",
    "ionic": "^4.2.1",
    "rxjs": "^6.5.2",
    "rxjs-compat": "^6.5.2",
    "sass": "^1.66.1",
    "transfer": "1.0.7",
    "ts-md5": "^1.2.4",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.29"
  },
  "devDependencies": {
    "@angular-devkit/architect": "~0.13.8",
    "@angular-devkit/build-angular": "^0.13.9",
    "@angular-devkit/core": "~7.3.8",
    "@angular-devkit/schematics": "~7.3.8",
    "@angular/cli": "7.3.9",
    "@angular/compiler": "~7.2.2",
    "@angular/compiler-cli": "~7.2.2",
    "@angular/language-service": "~7.2.2",
    "@ionic/angular-toolkit": "~1.5.1",
    "@ionic/app-scripts": "^3.2.4",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~12.0.0",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~8.1.0",
    "tslint": "~5.16.0",
    "typescript": "~3.1.6"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-camera": {},
      "cordova-plugin-device": {},
      "cordova-plugin-file": {},
      "cordova-plugin-filepath": {},
      "cordova-plugin-geolocation": {},
      "cordova-plugin-network-information": {},
      "cordova-plugin-qrscanner": {},
      "cordova-sqlite-storage": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-file-transfer": {},
      "cordova-plugin-inappbrowser": {},
      "cordova-plugin-ionic": {
        "APP_ID": "1ce2ba10",
        "CHANNEL_NAME": "Master",
        "UPDATE_METHOD": "background",
        "UPDATE_API": "https://api.ionicjs.com",
        "MAX_STORE": "2",
        "MIN_BACKGROUND_DURATION": "30"
      },
      "cordova-plugin-fcm-with-dependecy-updated": {
        "FCM_CORE_VERSION": "16.0.9",
        "FCM_VERSION": "18.0.0",
        "GRADLE_TOOLS_VERSION": "3.5.0",
        "GOOGLE_SERVICES_VERSION": "4.2.0"
      },
      "cordova-plugin-fcm": {}
    },
    "platforms": [
      "browser",
      "android"
    ]
  }
}

Can someone help me? Which version of ionic, node, etc., I should have to run this app? I have a minimum knowledge of the development of ionic.

2

There are 2 best solutions below

0
StackoverBlows On

There's a lot of homework you need to do and this will not be easy for someone new. There is no How to guide for building/running old ionic projects. Here are some steps to get you started:

  • Project is on ionic 4, you need to look through the ionic github repo for the ionic 4 version and check the minimum node and npm requirement.
  • After finding out the above, now you need nvm, n or homebrew to switch back to those old versions of node and npm. since the new version won't work on old projects.
  • Then try and build/run the project:
    • npm i
    • ionic build
    • ionic cordova build [platform]
    • ionic cordova run [platform]

A lot of errors will show that need to be fixed but at least you have the basics down. Good luck!

0
Eduardo José de Mello On

The biggest trouble about cordova projects are the plugins troubleshooting, with ionic is about updating and configuring the new stuff since ionic plugins are updated frequently. Running the app and configuring the java jdk and android sdk is the first step to create an environment, make sure to update and configure gradle for build. I recommend find out which one of the Ionic/Cordova version is running and make a setup for java and android sdk/jdk to run, after that perform an android update and troubleshooting till deployable to the stores.