Packagr: Возникли проблемы при экспорте моего сервиса, в котором есть субъект RXJS - PullRequest
0 голосов
/ 17 октября 2018

Я использую угловой v6 с packagr и Webpack .

Packagr версия: "ng-packagr":"3.0.0-rc.5"

У меня есть родительское приложение и дочернее приложение.

Мое дочернее приложение красиво упаковано и импортируется в мое родительское приложение в виде модуля..

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

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

Все остальные части моего дочернего приложения работают нормально и другие службы.Только служба, у которой есть наблюдаемая тема, не может работать, когда ее модуль импортирован в мое родительское приложение.

Это мой файл public_api.ts:

export * from './src/app/test.module';
export * from './src/app/services/notification.service';

Служба уведомлений , в которой Тема из rxjs не работает.

Это мойФайл ng-package.json:

{
  "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
  "lib": {
    "entryFile": "public_api.ts",
    "externals": {
      "rxjs/symbol/subject": "Rx.Observable.prototype",
      "rxjs/symbol/observable": "Rx.Observable.prototype"
    }
  },
  "whitelistedNonPeerDependencies": [
    "angular"
  ]
}

В приведенном выше файле я попытался добавить:

"rxjs/symbol/subject": "Rx.Observable.prototype",

И

"rxjs/symbol/observable": "Rx.Observable.prototype"

Но это, похоже, ничего не делает.

Файл службы уведомлений:

import { Injectable } from '@angular/core';
import { Subject, Observable } from 'rxjs';

import { AppModel } from '../models/app.model';

@Injectable({
 providedIn: 'root',
})
export class NotificationService {
  private _connectApp: Subject<AppModel> = new Subject();
  public connectApp$ = this._connectApp.asObservable();

  public updateConnectApp(appModel: AppModel): void {
    this._connectApp.next(appModel);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...