Upgrade to Angular 5

Going over suggestion following the latest upgrade instructions in the change log here. I got stuck and now the ionic project doesn’t compile at all.
I am using translate and stuck with OpaqueToken problem.
How should I change the translate implementation to use it?

Error
Close
Typescript Error
Module ‘“C:/Users/2bher/WebstormProjects/ionic3-angular4_2/node_modules/@angular/http/src/http”’ has no exported member ‘Http’.
…bstormProjects/ionic3-angular4_2/node_modules/@angular/http/src/http_module.d.ts
import { RequestOptions } from ‘./base_request_options’;
import { Http, Jsonp } from ‘./http’;
export declare function _createDefaultCookieXSRFStrategy(): CookieXSRFStrategy;
Typescript Error
Module ‘“C:/Users/2bher/WebstormProjects/ionic3-angular4_2/node_modules/@angular/http/src/http_module”’ has no exported member ‘HttpClientModule’.
…her/WebstormProjects/ionic3-angular4_2/node_modules/@angular/http/src/index.d.ts
undefined
Typescript Error
Module ‘“C:/Users/2bher/WebstormProjects/ionic3-angular4_2/node_modules/@angular/core/core”’ has no exported member ‘OpaqueToken’.
…ts/ionic3-angular4_2/node_modules/@ngx-translate/core/src/translate.service.d.ts
import { EventEmitter, OpaqueToken } from “@angular/core”;
import { Observable } from “rxjs/Observable”;
Typescript Error
Class ‘Subject’ incorrectly extends base class ‘Observable’. Types of property ‘lift’ are incompatible. Type ‘(operator: Operator<T, R>) => Observable’ is not assignable to type ‘(operator: Operator<T, R>) => Observable’. Type ‘Observable’ is not assignable to type ‘Observable’. Type ‘T’ is not assignable to type ‘R’.
…jects/ionic3-angular4_2/node_modules/ionic-native/node_modules/rxjs/Subject.d.ts
*/
export declare class Subject extends Observable implements ISubscription {
observers: Observer[];
Typescript Error
Class ‘WebSocketSubject’ incorrectly extends base class ‘AnonymousSubject’. Types of property ‘lift’ are incompatible. Type ‘(operator: Operator<T, R>) => WebSocketSubject’ is not assignable to type ‘(operator: Operator<T, R>) => Observable’. Type ‘WebSocketSubject’ is not assignable to type ‘Observable’. Types of property ‘operator’ are incompatible. Type ‘Operator<any, R>’ is not assignable to type ‘Operator<any, T>’. Type ‘R’ is not assignable to type ‘T’.
…node_modules/ionic-native/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts
*/
export declare class WebSocketSubject extends AnonymousSubject {
url: string;
Typescript Error
Argument of type ‘{ location: boolean; }’ is not assignable to parameter of type ‘NavOptions’. Object literal may only specify known properties, and ‘location’ does not exist in type ‘NavOptions’.
…/WebstormProjects/ionic3-angular4_2/src/pages/location-select/location-select.ts
close(){
this.navCtrl.popTo(TutorialPage, {location: false});
}
Ionic Framework: ^3.9.2
Ionic Native: ^2.9.0
Ionic App Scripts: 3.1.2
Angular Core: ^5.0.0
Angular Compiler CLI: ^5.0.0
Node: 8.9.1
OS Platform: Windows 10
Navigator Platform: Win32
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36

package.json
{
“name”: “wise-app”,
“version”: “0.0.1”,
“author”: “Tzvi Gregory Kaidanov”,
“homepage”: “http://wisea-app.biz”,
“private”: true,
“scripts”: {
“clean”: “ionic-app-scripts clean”,
“build”: “ionic-app-scripts build”,
“lint”: “ionic-app-scripts lint”,
“ionic:build”: “ionic-app-scripts build”,
“ionic:serve”: “ionic-app-scripts serve”
},
“dependencies”: {
"@angular/animations": “^5.0.0”,
"@angular/common": “^5.0.0”,
"@angular/compiler": “^5.0.0”,
"@angular/compiler-cli": “^5.0.0”,
"@angular/core": “^5.0.0”,
"@angular/flex-layout": “^2.0.0-beta.10-4905443”,
"@angular/forms": “^5.0.0”,
"@angular/http": “^5.0.0”,
"@angular/platform-browser": “^5.0.0”,
"@angular/platform-browser-dynamic": “^5.0.0”,
"@angular/platform-server": “^5.0.0”,
"@angular/router": “^5.0.0”,
"@ionic-native/camera": “^4.3.2”,
"@ionic-native/core": “^4.2.0”,
"@ionic-native/device": “^4.0.0”,
"@ionic-native/geolocation": “^4.4.2”,
"@ionic-native/google-maps": “^4.4.2”,
"@ionic-native/in-app-browser": “^4.3.2”,
"@ionic-native/native-storage": “^4.0.0”,
"@ionic-native/network": “^4.2.1”,
"@ionic-native/splash-screen": “4.3.2”,
"@ionic-native/status-bar": “4.3.2”,
"@ionic/storage": “2.1.3”,
"@ngx-translate/core": “6.0.1”,
"@ngx-translate/http-loader": “0.0.3”,
"@types/google-maps": “^3.2.0”,
“chart.js”: “^2.7.1”,
“copyfiles”: “^1.2.0”,
“cordova-android”: “6.3.0”,
“cordova-browser”: “5.0.1”,
“cordova-plugin-add-swift-support”: “^1.7.0”,
“cordova-plugin-camera”: “git+https://github.com/apache/cordova-plugin-camera.git”,
“cordova-plugin-compat”: “^1.2.0”,
“cordova-plugin-device”: “^1.1.4”,
“cordova-plugin-facebook4”: “^1.9.1”,
“cordova-plugin-geolocation”: “^3.0.0”,
“cordova-plugin-googlemaps”: “^2.1.1”,
“cordova-plugin-ionic”: “^2.0.3”,
“cordova-plugin-splashscreen”: “^4.0.3”,
“cordova-plugin-statusbar”: “^2.2.2”,
“cordova-plugin-whitelist”: “^1.3.3”,
“cordova-windows”: “^5.0.0”,
“es6-promise-plugin”: “^4.1.0”,
“font-awesome”: “^4.7.0”,
“ionic-angular”: “^3.9.2”,
“ionic-native”: “^2.9.0”,
“ionic-plugin-keyboard”: “^2.2.1”,
“ionicons”: “3.0.0”,
“reflect-metadata”: “^0.1.10”,
“rxjs”: “^5.5.2”,
“sw-toolbox”: “3.6.0”,
“zone.js”: “0.8.18”
},
“devDependencies”: {
"@ionic/app-scripts": “3.1.2”,
"@types/googlemaps": “^3.26.20”,
“typescript”: “^2.4.2”
},
“description”: “WiseApp try in on!”,
“cordova”: {
“plugins”: {
“cordova-plugin-console”: {},
“cordova-plugin-device”: {},
“cordova-plugin-statusbar”: {},
“ionic-plugin-keyboard”: {},
“cordova-plugin-facebook4”: {
“APP_ID”: "
},
“cordova-plugin-splashscreen”: {},
“cordova-plugin-ionic”: {
“APP_ID”: “7cf28f17”,
“CHANNEL_NAME”: “Master”,
“UPDATE_METHOD”: “background”,
“UPDATE_API”: “https://api.ionicjs.com”,
“MAX_STORE”: “2”
},
“cordova-plugin-compat”: {},
“cordova-plugin-camera”: {},
“cordova-plugin-whitelist”: {},
“cordova-plugin-geolocation”: {},
“cordova-plugin-googlemaps”: {
“API_KEY_FOR_ANDROID”:
}
},
“platforms”: []
},
“config”: {
“ionic_bundler”: “webpack”,
“ionic_source_map”: “source-map”,
“ionic_copy”: “./scripts/copy-custom-libs.js”
}
}

TSCONFIG>json

{
“compilerOptions”: {
“allowSyntheticDefaultImports”: true,
“declaration”: false,
“emitDecoratorMetadata”: true,
“experimentalDecorators”: true,
“lib”: [
“dom”,
“es2017”
],
“moduleResolution”: “node”,
“sourceMap”: true,
“target”: “es5”,
“typeRoots”: [“node_modules/@types”],
“baseUrl”: “src”
},
“include”: [
“src/**/*.ts”
],
“exclude”: [
“node_modules”
],
“compileOnSave”: false,
“atom”: {
“rewriteTsconfig”: false
},
“angularCompilerOptions”: {
“preserveWhitespaces”: false
}
}

What else should i change?

I used this https://angular-update-guide.firebaseapp.com/
by this blog https://alligator.io/angular/angular-5/

Any ideas?

Read the Ionic changelog to upgrade Ionic. Don’t upgrade Angular or Typescript outside of that, because Ionic’s dependencies run behind the most recent Angular and TS versions, so you might be introducing an inconsistency without realizing it.

Your upgrade is suspicious, because your Ionic Native is so old, even though your package.json claims it is much newer. That might be an issue with several packages.

You might need to nuke node_modules, and then follow the directions in the Ionic changelog.

I have rebuilt all my project from ionic starter of tabs

package.json

{
“name”: “wiseapp”,
“version”: “0.0.1”,
“author”: “Ionic Framework”,
“homepage”: “http://ionicframework.com/”,
“private”: true,
“scripts”: {
“clean”: “ionic-app-scripts clean”,
“build”: “ionic-app-scripts build”,
“lint”: “ionic-app-scripts lint”,
“ionic:build”: “ionic-app-scripts build”,
“ionic:serve”: “ionic-app-scripts serve”
},
“dependencies”: {
@angular/common”: “5.0.1”,
@angular/compiler”: “5.0.1”,
@angular/compiler-cli”: “5.0.1”,
@angular/core”: “5.0.1”,
@angular/forms”: “5.0.1”,
@angular/http”: “5.0.1”,
@angular/platform-browser”: “5.0.1”,
@angular/platform-browser-dynamic”: “5.0.1”,
@ionic-native/camera”: “^4.4.2”,
@ionic-native/core”: “4.4.0”,
@ionic-native/geolocation”: “^4.4.2”,
@ionic-native/network”: “^4.4.2”,
@ionic-native/splash-screen”: “4.4.0”,
@ionic-native/status-bar”: “4.4.0”,
@ionic/pro”: “1.0.16”,
@ionic/storage”: “2.1.3”,
@ngx-translate/core”: “^8.0.0”,
@ngx-translate/http-loader”: “^2.0.0”,
“chart.js”: “^2.7.1”,
“cordova-android”: “6.3.0”,
“cordova-plugin-camera”: “^3.0.0”,
“cordova-plugin-device”: “^1.1.4”,
“cordova-plugin-geolocation”: “^3.0.0”,
“cordova-plugin-ionic-webview”: “^1.1.16”,
“cordova-plugin-network-information”: “^1.3.4”,
“cordova-plugin-splashscreen”: “^4.0.3”,
“cordova-plugin-whitelist”: “^1.3.1”,
“ionic-angular”: “3.9.2”,
“ionic-native”: “^2.9.0”,
“ionic-plugin-keyboard”: “^2.2.1”,
“ionicons”: “3.0.0”,
“rxjs”: “5.5.2”,
“sw-toolbox”: “3.6.0”,
“zone.js”: “0.8.18”
},
“devDependencies”: {
@ionic/app-scripts”: “3.1.2”,
“typescript”: “2.4.2”
},
“description”: “An Ionic project”,
“cordova”: {
“plugins”: {
“cordova-plugin-geolocation”: {
“GEOLOCATION_USAGE_DESCRIPTION”: “Wiseapp customer loaction”
},
“cordova-plugin-network-information”: {},
“cordova-plugin-camera”: {},
“ionic-plugin-keyboard”: {},
“cordova-plugin-whitelist”: {},
“cordova-plugin-device”: {},
“cordova-plugin-splashscreen”: {},
“cordova-plugin-ionic-webview”: {}
},
“platforms”: [
“android”
]
}
}

tsconfig.json
{
“compilerOptions”: {
“noStrictGenericChecks”: true,
“allowSyntheticDefaultImports”: true,
“declaration”: false,
“emitDecoratorMetadata”: true,
“experimentalDecorators”: true,
“lib”: [
“dom”,
“es2015”
],
“module”: “es2015”,
“moduleResolution”: “node”,
“sourceMap”: true,
“target”: “es5”,
“typeRoots”: [
“…/node_modules/@types
]
},
“include”: [
“src//*.ts"
],
“exclude”: [
“node_modules”,
"src/
/.spec.ts",
"src/**/tests/
.ts”
],
“compileOnSave”: false,
“atom”: {
“rewriteTsconfig”: false
}
}

tweaked to work with httpCLient and changed rest api

now I am stuck on geolocation and camera

getting

**core.js:1350 ERROR Error: Uncaught (in promise): Error: StaticInjectorError[Geolocation]: **
**  StaticInjectorError[Geolocation]: **
**    NullInjectorError: No provider for Geolocation!**

WIth camera similar…

Any ideas how to solve it?

By the way the data on other pages works… so it’s just about several plugins now…

same problem with me :frowning: