错误类别“ FirebaseApp”错误地实现了接口“ App”

imn*_*ghn 5 npm firebase angular

尝试提供我的angularCLI和Firebase导致此错误...我该怎么办?

node_modules / angularfire2 / app / firebase.app.module.d.ts(5,22)中的错误:错误TS2420:“ FirebaseApp”类错误地实现了“ App”接口。类型“ FirebaseApp”中缺少属性“ firestore”。node_modules / angularfire2 / app / firebase.app.module.d.ts(12,28):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / database / firebase_list_observable.d.ts(14,62):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / database / firebase_list_observable.d.ts(15,48):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / database / firebase_list_observable.d.ts(16,92):错误TS2694:命名空间'firebase' 没有导出成员“ Promise”。node_modules / angularfire2 / database / firebase_object_observable.d.ts(11,31):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / database / firebase_object_observable.d.ts(12,37):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / database / firebase_object_observable.d.ts(13,24):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / interfaces.d.ts(12,32):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / interfaces.d.ts(13,35):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / interfaces.d.ts(14,35):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。node_modules / angularfire2 / interfaces.d.ts(15,44):错误TS2694:命名空间“ firebase”没有导出的成员“ Promise”。

webpack:编译失败。

package.json

{
  "name": "oshop",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^5.2.0",
    "@angular/common": "^5.2.0",
    "@angular/compiler": "^5.2.0",
    "@angular/core": "^5.2.0",
    "@angular/forms": "^5.2.0",
    "@angular/http": "^5.2.0",
    "@angular/platform-browser": "^5.2.0",
    "@angular/platform-browser-dynamic": "^5.2.0",
    "@angular/router": "^5.2.0",
    "@ng-bootstrap/ng-bootstrap": "^1.0.0",
    "angularfire2": "^4.0.0-rc.1",
    "bootstrap": "^4.0.0",
    "core-js": "^2.4.1",
    "firebase": "^4.9.1",
    "rxjs": "^5.5.6",
    "zone.js": "^0.8.19"
  },
  "devDependencies": {
    "@angular/cli": "^1.6.7",
    "@angular/compiler-cli": "^5.2.0",
    "@angular/language-service": "^5.2.0",
    "@types/jasmine": "~2.8.3",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "^4.0.1",
    "jasmine-core": "~2.8.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~2.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~4.1.0",
    "tslint": "~5.9.1",
    "typescript": "~2.5.3"
  },
  "description": "This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.7.",
  "main": "karma.conf.js",
  "author": "",
  "repository": {
    "type": "git",
    "url": "imnickvaughn"
  }
}
Run Code Online (Sandbox Code Playgroud)

imn*_*ghn 6

您应该首先尝试:(如果已安装角度cli和firebase)

  1. 在终端类型中:npm install -S angularfire2 @ latest

完成此操作后,angularfire2将显示为:“ angularfire2”:“ ^ 5.0.0-rc.6”,

...就这样

如果还不够,请查看这些来源并尝试... https://github.com/angular/angularfire2/issues/1338 https://github.com/angular/angular-cli/issues/4391

npm uninstall -g angular-cli
npm cache clean
npm install -g @angular/cli@latest

rm -rf node_modules dist
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
ng update [this wasn't working so I just changed it to ng init I believe]

npm install -g firebase-tools
npm install -S angularfire2@latest
Run Code Online (Sandbox Code Playgroud)

使用上述建议并重新安装所有依赖项也可以解决此问题... npm WARN不赞成使用node-uuid@1.4.7:使用uuid模块代替 https://github.com/kelektiv/node-uuid/issues/155

...此外,在我输入oh-my-zsh之前,firebase命令将无法使用:

npm install -S -D -g firebase-tools
Run Code Online (Sandbox Code Playgroud)

进入vs代码终端。

希望这可以节省一个小时或五个小时的时间...