代码之家  ›  专栏  ›  技术社区  ›  Datum Geek

6:AngurJS-->可观察编译错误

  •  3
  • Datum Geek  · 技术社区  · 6 年前

    在使用angular 6和swagger codegen时,我发现了与 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

    现在我收到了编译器警告,但编译器错误消失了,项目似乎正在运行

    3 回复  |  直到 6 年前
        1
  •  3
  •   Cristian Alarcón Pieriz    6 年前

    如果要从以前的角度版本移植,请遵循以下指南:

    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 使用 操作人员

    也许你可以共享一份日志副本,这样就更容易理解是什么导致了错误/警告。

        2
  •  2
  •   hamilton.lima    6 年前

    我也面临着同样的问题。

    即使用2.4替换swagger generator并没有解决这个问题,我发现的解决方法是将rxjscompat添加到项目中: npm install rxjs-compat@6

    有关讨论的更多详细信息,请参见: https://github.com/swagger-api/swagger-codegen/issues/8179#issuecomment-402575414

        3
  •  1
  •   Henry    4 年前

    对我来说,我使用了“swagger-codegen-cli-2.4.0.jar”来生成,为了解决“rxjs”问题,我在命令末尾添加了以下内容:

    --additional-properties ngVersion=6