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 ;-)