J'avais mon projet ionic 2 dans ma mission linux quand je me suis débrouillé et je suis passé au mac qui a ionic 3.

J'ai donc créé un nouveau projet et remplacé les pages, fournit, le dossier de composants par le nouveau projet que j'obtenais une erreur comme cannot find module "ionic-native" après avoir importé mes plugins dans le fichier app.modulte.ts que j'obtiens comme erreur en tant que 'Tapez' tout 'n'est pas un type de fonction constructeur.'

Mon terminal montre

17:39:48]  typescript: node_modules/@ionic-native/app-version/index.d.ts, line: 25
            Type 'any' is not a constructor function type. [17:39:48]  typescript: node_modules/@ionic-native/geolocation/index.d.ts, line: 127 [17:39:48]  typescript: node_modules/@ionic-native/google-analytics/index.d.ts, line: 30 [17:39:48]  typescript: node_modules/@ionic-native/network/index.d.ts, line: 49 [17:39:48]  typescript: node_modules/@ionic-native/sms/index.d.ts, line: 41 [17:39:48]  typescript: node_modules/@ionic-native/social-sharing/index.d.ts, line: 29 [17:39:48]  typescript: node_modules/@ionic-native/sqlite/index.d.ts, line: 115

      L25:  export declare class AppVersion extends IonicNativePlugin {

            Type 'any' is not a constructor function type.

     L127:  export declare class Geolocation extends IonicNativePlugin {

            Type 'any' is not a constructor function type.

      L30:  export declare class GoogleAnalytics extends IonicNativePlugin {

            Type 'any' is not a constructor function type.

      L49:  export declare class Network extends IonicNativePlugin {

            Type 'any' is not a constructor function type.

      L41:  export declare class SMS extends IonicNativePlugin {

            Type 'any' is not a constructor function type.

      L29:  export declare class SocialSharing extends IonicNativePlugin {

            Type 'any' is not a constructor function type.

     L115:  export declare class SQLite extends IonicNativePlugin {

[17:39:48]  dev server running: http://localhost:8100/

Dans mon navigateur, j'obtiens une erreur comme this

Voici mon fichier package.json

{
  "name": "ionic-hello-world",
  "version": "0.0.0",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "4.0.2",
    "@angular/compiler": "4.0.2",
    "@angular/compiler-cli": "4.0.2",
    "@angular/core": "4.0.2",
    "@angular/forms": "4.0.2",
    "@angular/http": "4.0.2",
    "@angular/platform-browser": "4.0.2",
    "@angular/platform-browser-dynamic": "4.0.2",
    "@ionic-native/app-version": "^3.6.1",
    "@ionic-native/geolocation": "^3.6.1",
    "@ionic-native/google-analytics": "^3.6.1",
    "@ionic-native/network": "^3.6.1",
    "@ionic-native/sms": "^3.6.1",
    "@ionic-native/social-sharing": "^3.6.1",
    "@ionic-native/splash-screen": "3.4.2",
    "@ionic-native/sqlite": "^3.6.1",
    "@ionic-native/status-bar": "3.4.2",
    "@ionic/storage": "2.0.1",
    "ionic-angular": "3.1.1",
    "ionicons": "3.0.0",
    "rxjs": "5.1.1",
    "sw-toolbox": "3.4.0",
    "zone.js": "^0.8.5"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.3.6",
    "typescript": "~2.2.1"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-statusbar",
    "cordova-plugin-console",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard",
    "cordova-plugin-android-permissions",
    "cordova-plugin-app-version",
    "cordova-plugin-geolocation",
    "cordova-plugin-google-analytics",
    "cordova-plugin-network-information",
    "cordova-plugin-sms",
    "cordova-plugin-x-socialsharing",
    "cordova-sqlite-storage"
  ],
  "cordovaPlatforms": [
    "ios",
    {
      "platform": "ios",
      "version": "",
      "locator": "ios"
    }
  ],
  "description": "kmart: An Ionic project"
}

Après avoir utilisé npm install @ionic-native/core --save, j'obtiens une erreur du type this

4
Mohan Gopi 3 mai 2017 à 15:25

3 réponses

Meilleure réponse

Pour utiliser ionic-native 3.x, vous devez installer @ionic-native/core.

npm install @ionic-native/core@3.6.1 --save
12
Suraj Rao 3 mai 2017 à 12:34

Hier, j'étais confronté au même problème après avoir mis à jour ma jolie ancienne version vers une nouvelle. J'ai dû effectuer de nombreuses étapes pour que cela fonctionne à la fin. Voici ce que je devais faire ou comment je l'ai résolu. J'ai d'abord créé un projet `` factice ''

ionic start myApp tabs

J'ai ouvert le package.json et comparé toutes les versions à ma version actuelle et les ai mises à jour en conséquence (vous voudrez peut-être utiliser npm outdated pour voir la dernière version et vos versions installées).

Malheureusement, cela n'a pas résolu mon problème, j'ai pu créer mon projet, mais j'ai eu la même erreur que vous cannot find module "ionic-native" après le démarrage.

Après avoir lu beaucoup de messages et d'indices, j'ai fait ce qui suit (il y avait beaucoup d'autres erreurs à venir et c'est ainsi que j'ai toutes résolues).

Ouvrez le app.module.ts et vérifiez vos importations
Avant:

imports: [
   IonicModule.forRoot(MyApp),
   Ionic2RatingModule
]

Après:

imports: [
   BrowserModule,
   IonicModule.forRoot(MyApp),
   Ionic2RatingModule,
   HttpModule /* in case you used http before */
]

La prochaine étape importante consiste à rechercher dans tout votre code
import from "ionic-native"

Si vous trouvez quelque chose comme ça, vous devez le changer / le mettre à jour avec la nouvelle version. (En général, c'est pour le splashScreen et la statusBar dans votre app.component.ts)

Avant:

import { StatusBar, Splashscreen } from 'ionic-native';
@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage = HomePage;    
  constructor(platform: Platform) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      StatusBar.styleDefault();
      Splashscreen.hide();
    });
    platform.pause.subscribe(e=>{

    })
  }
}

Après:

 import {StatusBar} from "@ionic-native/status-bar";
 import {SplashScreen} from "@ionic-native/splash-screen";
   @Component({
     templateUrl: 'app.html'
   })
   export class MyApp {
     rootPage = HomePage;

    constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
      platform.ready().then(() => {
        // Okay, so the platform is ready and our plugins are available.
        // Here you can do any higher level native things you might need.
        statusBar.styleDefault();
        splashScreen.hide();
      });
      platform.pause.subscribe(e => {

      })
    }
  }

Vérifiez le constructeur et les importations, ils ont changé! J'ai dû faire tous ces changements pour tout ce qui était importé via MODULE import from "ionic-native" comme par exemple: StatusBar, SplashScreen, Camera, Network, Transfer, Geolocation ... Gardez également à l'esprit que vous devez maintenant les ajouter à la section providers de votre app.module.ts
Si vous ne trouvez plus de module (comme cela m'est arrivé pour la caméra), assurez-vous d'importer le bon module ionique npm install --save @ionic-native/camera
À la toute fin, vous ne devriez trouver aucun
Importation de MODULE depuis "natif ionique"
à nouveau dans votre code. J'espère que ça aide quelqu'un :)

0
djnose 12 mai 2017 à 10:42

J'avais @ionic-native/core ^3.6.0 dans mon package.json. Pour moi, le problème a été résolu en important mes plugins comme

import {File, Transfer, FilePath} from "ionic-native";

Au lieu de

import {FilePath} from "@ionic-native/file-path";
import {Transfer} from "@ionic-native/transfer";
import {File} from "@ionic-native/file";
2
C. Doe 10 mai 2017 à 11:47