0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AngularFire2導入で詰まった話

Last updated at Posted at 2021-12-25

背景

udemy の動画で学習中に、 Angular Fire 2のインストールでエラーが出まくったので、その対処について記録しておく。

実際に行ったこと

udemy 動画に従って、 angularfire2 と firebase をインストール。

$ npm install angularfire2 firebase --save

ここで ng serve を立ち上げ直したが、エラーが出まくった。

// (一部抜粋)
Error: src/app/app.module.ts:49:5 - error TS2304: Cannot find name 'AngularFireModule'.

49     AngularFireModule.initializeApp(environment.firebase),
       ~~~~~~~~~~~~~~~~~


Error: src/app/app.module.ts:50:5 - error TS2304: Cannot find name 'AngularFirestoreModule'.

50     AngularFirestoreModule,
       ~~~~~~~~~~~~~~~~~~~~~~

動画のリンクを辿ると、エラー対処法について書いてあったので、それらを試してみる。

$ npm i firebase
$ ng add @angular/fire
$ npm audit fix
$ npm i @angular/fire
$ npm i firebase@7.24.0

上記コマンドを打ち込んだが、エラーは変わらず。むしろ増えている気がする・・・。

気を取り直して、一度全部アンインストールする。

$ npm uninstall firebase@7.24.0
$ npm uninstall @angular/fire
$ npm uninstall firebase

// ng add で入れたコンポーネントは手動で消すしかないようなので、省略

$ npm uninstall angularfire2 firebase

動画の中で参照していた GitHub(下記)を見てみると、使うコマンドが違うっぽいので、GitHub の手順に従ってみる。
https://github.com/angular/angularfire/blob/master/docs/install-and-setup.md

$ ng add @angular/fire
ℹ Using package manager: npm
✔ Found compatible package version: @angular/fire@7.0.4.
✔ Package information loaded.

The package @angular/fire@7.0.4 will be installed and executed.
Would you like to proceed? Yes
✔ Package successfully installed.
    ⚠️ The @angular-devkit/architect devDependency specified in your package.json (<0.900 || ^0.900.0-0 || ^9.0.0-0) does not fulfill AngularFire's dependency (^0.1200.0)
    ⚠️ The firebase-tools devDependency specified in your package.json (^7.12.0) does not fulfill AngularFire's dependency (^9.0.0)
UPDATE package.json (1577 bytes)
✔ Packages installed successfully.
⠋ Preparing the list of your Firebase projects(node:21618) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
✔ Preparing the list of your Firebase projects
? Please select a project: ng-fitness-tracker (ng-fitness-tracker-b57fc)
CREATE firebase.json (669 bytes)
CREATE .firebaserc (165 bytes)
UPDATE angular.json (3307 bytes)

いくつか warning が出てきたので対処してみる。

  • ⚠️ The @angular-devkit/architect devDependency specified in your package.json (<0.900 || ^0.900.0-0 || ^9.0.0-0) does not fulfill AngularFire's dependency (^0.1200.0)
    
  •     ⚠️ The firebase-tools devDependency specified in your package.json (^7.12.0) does not fulfill AngularFire's dependency (^9.0.0)
    
  •     (node:21618) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
    

(Use node --trace-warnings ... to show where the warning was created)

// architect を 0.1200.0 で入れてみる
$ npm install @angular-devkit/architect@0.1200.0

// firebase-tools を 9.0.0 で入れてみる
$ npm install firebase-tools@9.0.0

// 依存性の確認
$ node --trace-warnings ...
internal/modules/cjs/loader.js:905
  throw err;
  ^

Error: Cannot find module '/Users/glaciermelt/workspace/udemy/fitness-tracker/...'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._load (internal/modules/cjs/loader.js:746:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

// 何か吐き出されたが、よくわからん・・・。

以上の対応で、下記のモジュールをインポートしても、特にエラーは出なくなった。

    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule,

依存性の確認のところはよくわかっていないが、触ったことのないファイルなので、ひとまず据え置き。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?