swagger codegen --› angular6: наблюдаемая ошибка компиляции rxjs

При использовании angular 6 и swagger codegen я получаю ошибки компилятора typescript, связанные с rxjs:

Cannot find module 'rxjs-compat/Observable'

Я нашел следующие https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#rxjs-v5x-to-v6-update-guide

Я использую swagger-codegen: stable 2.3.1 на Mac (установлен с brew).

Я ценю любое руководство.

Обновлять -----------------------

Я добавил rxjs-compat в свой проект angular6, используя

npm install --save-dev rxjs-compat

Теперь я получаю предупреждения компилятора, но ошибки компилятора исчезли, и проект, кажется, работает.


person Datum Geek    schedule 18.05.2018    source источник


Ответы (3)


Если вы переходите с предыдущей версии angular, следуйте следующему руководству:

https://update.angular.io/

Пакет rxjs-compat должен быть совместим с предыдущими реализациями rxjs. Например:

import { concat } from 'rxjs/observable/concat'

Однако это должно быть обновлено до новой реализации, которая входит в версию 6. Например:

import { catchError, map, switchMap } from 'rxjs/operators';

Это сказало. Вы также должны изменить реализацию своих наблюдаемых операторов, используя pipe. Например:

this.sampleService
      .search(
        payload.firstName,
        payload.lastName,
        payload.dateOfBirth
      )
      .pipe(
        map(response => new sampleActions.SearchSuccess(response.json())),
        catchError(error => of(new sampleActions.SearchFail(error)))
      )

Как видите, операторы map и catchError имеют разную реализацию, использующую оператор pipe.

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

person Cristian Alarcón Pieriz    schedule 23.05.2018

Я столкнулся с той же проблемой.

Даже замена генератора swagger на 2.4 не решила проблему, найденный мной обходной путь заключался в том, чтобы добавить rxjscompat в проект: npm install rxjs-compat@6

См. более подробную информацию об обсуждении: https://github.com/swagger-api/swagger-codegen/issues/8179#issuecomment-402575414

person hamilton.lima    schedule 01.09.2018

Для себя я использовал swagger-codegen-cli-2.4.0.jar для генерации и для решения проблем с rxjs я добавил это в конце команды:

--additional-properties ngVersion=6
person Henry    schedule 25.11.2020