Как добавить @angular/fire в Nx Workspace (проект Angular)?

Я хотел бы добавить @angular/fire в свою рабочую область Nx (приложение Angular).

Я пытаюсь следовать рекомендациям, однако в официальном документы по добавлению этой библиотеки в рабочую область.

Или я что-то упустил?


  1. INSTALLATION
    • is it OK to install the lib via the standard command?
    • npm i @angular/fire ... или ... ng add @angular/fire
    • Есть ли специальный способ установки Nx?

  1. PLACING & NAMING
    In which module should I call the initializeApp() method?
    • в AppModule? (так я делал до перехода на Nx)

    • или модуль lib? (это мне кажется ближе к философии Nx)

    • если ответ "модуль lib"

      • which module should it be?
      • куда я должен поместить lib/module и как мне его назвать?
      • будет ли «libs/data-access/api» хорошей идеей?

  1. USING THE API
    • How do I use the installed package and initialized module(lib)?
    • Должен ли я импортировать API-библиотеку несколько раз в каждую библиотеку, которой потребуется эта функциональность?
    • Или мне импортировать библиотеку API только один раз в приложение?

Придерживаться лучших практик (соглашений об именах и т. д.) может показаться глупым, но я действительно хочу делать все правильно.


person PaxForce    schedule 18.02.2021    source источник


Ответы (3)


прежде всего вам нужно скачать firebase

нпм я @угловой/огонь

и добавьте firebase в угловой проект

добавить @angular/огонь

А теперь импортируйте firebase в app.module.ts

import { AngularFireModule } from '@angular/fire';  

@NgModule({  
  imports: [  

    AngularFireModule.initializeApp(environment.firebase)  
  ],  

})  

export class AppModule {}

и теперь вы можете использовать firebase в угловом проекте

ссылка на официальные документы

https://github.com/angular/angularfire

person Piyush Jain    schedule 18.02.2021
comment
Я знаю - это стандартный способ Angular. Но я хочу сделать это «способом nx-workspace». Это, вероятно, означало бы, что функциональность извлечена в библиотеку и используется определенным образом. - person PaxForce; 18.02.2021

Вы можете просто установить его с помощью npm install.

Я бы предложил инициализировать в модуле приложения. Философия приложений Nx заключается в том, что они несут ответственность за создание и настройку библиотек. Особенно важно инициализировать в модуле приложения вместо библиотек при использовании синглтонов (например, Firebase, модуль корневого маршрутизатора, инициализация хранилища ngrx), чтобы случайно не инициализировать синглтон более одного раза.

Вы должны иметь возможность импортировать напрямую из angularfire в свои библиотеки.

person Jeff Cross    schedule 18.02.2021

  1. Вы можете установить его с помощью npm (npm i @angular/fire), а затем запустить nx g @angular/fire:ng-add. Документы: https://nx.dev/latest/angular/getting-started/cli-overview#ng-add-functionality
  2. Это должно быть в файле AppModule вашего приложения.
  3. Вы можете импортировать пакет везде, где это необходимо. AppModule необходимо импортировать пакет и настроить приложение, чтобы другие библиотеки могли его использовать. Это ничем не отличается от использования @angular/router или @ngrx/store как в приложениях, так и в библиотеках.
person jay_soo    schedule 15.03.2021
comment
спасибо за ваш ответ, однако, когда я набираю nx g @angular/fire:ng-add => я получаю сообщение об ошибке Невозможно разрешить @angular/fire:ng-add. EISDIR: недопустимая операция над каталогом, чтение. Любая идея, почему это может происходить? - person PaxForce; 27.06.2021