在维护npm升级后,我在Angular中遇到了一个新的错误,其中没有直接依赖版本发生变化。
ng serve产生此错误,构建失败:
[ng]
[ng] Error: node_modules/rxfire/firestore/lite/interfaces.d.ts:8:29 - error TS2314: Generic type 'AggregateQuerySnapshot<T>' requires 1 type argument(s).
[ng]
[ng] 8 export type CountSnapshot = lite.AggregateQuerySnapshot<{
[ng] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ng] 9 count: lite.AggregateField<number>;
[ng] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ng] 10 }, any, DocumentData>;
[ng] ~~~~~~~~~~~~~~~~~~~~~
[ng] × Failed to compile.
我该怎么办?
我已经从头开始重新安装了整个项目。包依赖项匹配angular fire指令:
"dependencies": {
"@angular/common": "^15.2.2",
"@angular/core": "^15.2.2",
"@angular/fire": "^7.5.0",
"@angular/forms": "^15.2.2",
"@angular/platform-browser": "^15.2.2",
"@angular/platform-browser-dynamic": "^15.2.2",
"@angular/router": "^15.2.2",
"@angular/service-worker": "^15.2.2",
"firebase": "^9.17.1",
"tslib": "^2.2.0",
"zone.js": "~0.11.4"
},
7条答案
按热度按时间svgewumm1#
我通过强制安装rxfire版本6.0.3解决了这个问题
我也不得不重新开始服务。
fcg9iug32#
我遇到了这个错误,并使用ng add @angular/fire安装了angular/fire
package.json:
package.lock.json:
在node_modules>rxfire>firestore>lite>interface.d.ts中
我改变
到
由于错误说它需要一种类型的参数,我只留下一种。
我不知道它是否会影响应用程序,但我不打算使用Firestore建兴。
woobm2wo3#
安装最新版本的Firebase:
4smxwvx54#
我的项目确实有
"@angular/fire": "7.6.1"
作为依赖项,而不是像OP那样的firebase
。但在这种情况下,它认为它会解决这两个问题,因为我从同一个原点(
node_modules/rxfire/firestore/lite/interfaces.d.ts
)得到了完全相同的错误。将rxfire降级到6.0.4版对我来说不起作用。降级到版本6.0.3会导致一个新的错误,
在“tslib”中未找到“__spreadArray”
所以有两个步骤来解决(对我来说):
1.将
package.json
中的Firebase或@angular/fire模块分辨率覆盖到rxfire到6.0.3。我也添加了pnpm的方法,如果你使用这个。请记住根据需要将@angular/fire
替换为firebase
。然后用npm i
重新安装所有东西。1.如前所述,原来的错误已经消失了,但有人抱怨在
tslib
中找不到某些参数。令人惊讶的是,我读了很多关于将tslib更新到最新版本的文章,但这并不起作用。具体来说,安装v2.1.0是有效的。使用--save-exact
避免版本高于2.1.0。ki0zmccv5#
我在使用
[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
时遇到了同样的问题,但在我手动安装特定版本[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
时,问题得到了解决。我采取了这些步骤:
1.从我的
node_modules
文件夹中删除rxfire
1.手动安装特定版本:
npm i [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
1.创建App:
npm run build
rqmkfv5c6#
我按照答案中的一些建议解决了这个问题:
rxfire
npm i [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
npm update
(因为我安装rxfire后有新的错误)这对我很有效
yzckvree7#
我得到了同样的错误以下只有最低限度的安装说明从AngularFire repository。所以我猜是窃听器。如果你只是想忽略这个问题,一个快速而肮脏的解决方案是将
skipLibCheck: true
添加到根目录下tslog.json文件中的compilerOptions
。这会抑制错误,以便应用程序编译,但当然跳过库检查会引入其他问题,因此它不是生产就绪的解决方案。