有趣的是,自从今天早上以来,我一直在使用
AngularCrashlytics(from @angular/fire)
一段时间,我变得无法获得 build
或 ng serve
,这会引发如下错误。有人可以帮我摆脱这个吗?
在
app.module
我已经添加了@angular/fire
相关的配置步骤如下(取自https://github.com/angular/angularfire/blob/master/docs/analytics/getting-started.md)
import { AngularFireModule } from '@angular/fire/compat';
import { AngularFireAnalyticsModule } from '@angular/fire/compat/analytics';
imports:[
AngularFireModule.initializeApp(environment.Tools.Firebase)//firebase releated config,
AngularFireAnalyticsModule
]
我有如下配置,
ng version
来自 package.json 的依赖版本
"firebase": "^9.14.0",
"@angular/fire": "^7.4.1"
附加说明:已经从头开始克隆的项目多次尝试删除
node modules
文件夹和npm install
此外还尝试将firebase和@angular/fire升级到最新版本,但没有解决问题。
今天早上我将 Angular 从 15.1.2 更新到 15.1.3:
这抛出了 34 个错误,都涉及 AngularFire:
Error: export 'GoogleAuthProvider' (imported as 'GoogleAuthProvider') was not found in '@angular/fire/auth'
./node_modules/@angular/fire/fesm2015/angular-fire-analytics.js:7:0-47 - Error: Module not found: Error: Default condition should be last one
我尝试在
overrides
中使用 package.json
但 npm install
拒绝运行覆盖,抛出 EOVERRIDE
错误。 npm install --force
没有帮助。
我通过不使用
overrides
而是将“^15.0.0”更改为“15.1.2”然后运行npm install --force
.来修复它
我不明白为什么
overrides
没用。我可能会问这个问题。
我会等到新版本的 AngularFire 发布后再更新到最新的 Angular。
我猜这个问题来自这里的依赖: node_modules/@angular/fire/package.json
"dependencies": {
"firebase": "^9.8.0",
如这里所述: https://github.com/firebase/firebase-js-sdk/issues/7005#issuecomment-1415807037
删除版本中的 ^ 为我解决了它。
我在我的项目 package.json 中这样做来覆盖它:
{
"name": "myproject",
"version": "0.0.0",
"scripts": ...
"dependencies": ...
"devDependencies": {
...
},
"overrides": {
"@angular/fire": {
"firebase": "9.8.0"
}
},
然后运行“npm install”来应用它。
应该在下一个版本的“@angular/fire”中修复。
在 package.json 添加这段代码:
"overrides": {
"@angular/fire": {
"firebase": "9.8.1"
}
}
fire 的版本是:“@angular/fire”:“^7.4.1” 和节点 16.14.2 与 npm 8.5.0 删除 rm -r node_modules package-lock.json .angular 只有 npm 而不是 yarn
角火问题
https://www.bezkoder.com/angular-15-firestore-crud/
要消除这些错误,您必须更新 tsconfig.json 文件。
...
"compilerOptions": {
...
"skipLibCheck": true. //add this line!!!!!!!
},
...