La compilation Ionic échoue après avoir ajouté firebase et @ angular / fire à mon projet. J'utilise Firebase et angularFire depuis des lustres, mais soudainement, ce problème est survenu lors de la construction.
Semble être lié à un problème lié au fichier logger.d.ts , cependant, je n'utilise même pas Logger de firebase. Il doit s'agir d'un appel interne, d'une recherche sur le Web pendant des heures mais n'a pas pu trouver de réponse, j'espère que quelqu'un a peut-être rencontré ce problème plus tôt? peut faire la lumière?
Voici l'image du message d'erreur
"dependencies": {
"@angular/common": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/fire": "^5.4.2",
"@angular/forms": "~8.2.14",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@ionic-native/core": "^5.0.0",
"@ionic-native/device": "^5.23.0",
"@ionic-native/http": "^5.23.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^5.0.0",
"cordova-android": "8.1.0",
"cordova-ios": "5.1.1",
"cordova-plugin-advanced-http": "^2.4.1",
"cordova-plugin-file": "^6.0.2",
"core-js": "^2.5.4",
"firebase": "^7.13.1",
"lodash": "^4.17.15",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.803.20",
"@angular/cli": "~8.3.23",
"@angular/compiler": "~8.2.14",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@ionic/angular-toolkit": "^2.1.1",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/lodash": "^4.14.149",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.1.3",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.3",
"jasmine-core": "~3.4.0",
"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": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"npm-force-resolutions": "0.0.3",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
Mon package.json ressemble à ce qui suit
> ng run app:build
ERROR in node_modules/@firebase/logger/dist/src/logger.d.ts:70:9 - error TS1086: An accessor cannot be declared in an ambient context.
70 get logLevel(): LogLevel;
~~~~~~~~
node_modules/@firebase/logger/dist/src/logger.d.ts:71:9 - error TS1086: An accessor cannot be declared in an ambient context.
71 set logLevel(val: LogLevel);
~~~~~~~~
node_modules/@firebase/logger/dist/src/logger.d.ts:77:9 - error TS1086: An accessor cannot be declared in an ambient context.
77 get logHandler(): LogHandler;
~~~~~~~~~~
node_modules/@firebase/logger/dist/src/logger.d.ts:78:9 - error TS1086: An accessor cannot be declared in an ambient context.
78 set logHandler(val: LogHandler);
~~~~~~~~~~
node_modules/@firebase/logger/dist/src/logger.d.ts:83:9 - error TS1086: An accessor cannot be declared in an ambient context.
83 get userLogHandler(): LogHandler | null;
~~~~~~~~~~~~~~
node_modules/@firebase/logger/dist/src/logger.d.ts:84:9 - error TS1086: An accessor cannot be declared in an ambient context.
84 set userLogHandler(val: LogHandler | null);
~~~~~~~~~~~~~~
[ERROR] An error occurred while running subprocess ng.
ng run app:build exited with exit code 1.
Re-running this command with the --verbose flag may provide more information.
Veuillez aider si quelqu'un le peut.
3 Réponses :
J'obtiens également cela en essayant de mettre à jour mon paquet Firebase à partir de la version 7.11.0 et plus. Essayez de corriger la version de Firebase à 7.11.0.
Quant à une vraie solution à long terme, je suis également intéressé.
malheureusement, je travaille à ma fin. J'ai supprimé le dossier node_module, supprimé le fichier package-lock.json, changé la version de firebase en 7.11.0 et exécuté npm install, mais les mêmes erreurs que là-haut: (je vais essayer de supprimer d'autres plugins et voir si quelque chose d'autre est déduit , avec les packages !!! mettra à jour mes résultats ici
Vous devez utiliser TypeScript 3.7.
À partir de TypeScript 3.7 notes de version : p>
Pour détecter le problème autour des accesseurs, TypeScript 3.7 émettra désormais des accesseurs get / set dans les fichiers .d.ts afin que dans TypeScript puisse vérifier les accesseurs remplacés.
Vous devrez donc soit mettre à niveau vers TypeScript 3.7, soit utiliser une version antérieure de Firebase.
Définir skipLibCheck à true dans votre tsconfig.json .
"compilerOptions": {
"skipLibCheck": true,
...
}
vous êtes un homme qui sauve la vie, la solution 2 a très bien fonctionné pour moi. Merci
Merci, bonne explication et solutions. Je viens de passer une demi-journée à essayer différentes correspondances de versions de dépendances, et pour une résolution rapide, votre deuxième solution fonctionne très bien.
J'ai eu un problème avec Ionic 4, j'ai rétrogradé Firebase à 7.10.
Impossible d'utiliser Typescript> 3.6 avec Angular 8, ou lève ERROR dans Angular Compiler requiert TypeScript> = 3.4.0 et <3.6.0 mais 3.8.3 a été trouvé à la place. p>
Je n'ai pas essayé de basculer l'option du compilateur skipLibCheck , cela ne semble pas être une solution à long terme.
Au fait, merci à tous pour le fil, sauve ma journée ;-)