在使用另一版本的Angular构建的应用程序中使用使用另一版本的Angular构建的角度库是否安全?

可以说,例如,我有一个使用Angular v6 cli构建的angular应用程序,它依赖于使用Angular v8 cli构建的Angular库。使用此库作为依赖关系是否安全?还是应该将应用程序更新为angular v8?

对于相反的情况,同样的问题。如果我的应用程序是使用angular v8 cli构建的,并且依赖于使用Angular v6 cli构建的Angular库,是否应将Angular库更新为使用Angular v8 cli构建?

评论
  • 心乱
    心乱 回复

    好吧,如果它可以编译并且您的代码中包含测试,则我认为就功能而言,它是完全安全的。但是,您必须对代码进行书面测试,以确保库中所需的所有功能均正常运行(当然,您无需测试库,只需将其功能集成到组件中即可)。

    从安全性的角度来看,您对过时的nano依赖关系持开放态度,这些安全性缺陷无法在过时的库中得到纠正(这是javascript项目的风险:nano依赖关系)。

    Using a library built upon a greater version of angular than that in your project may or may not work. If the author of the library specified the version as a peerDependency something like @angular/core:^8.0 and you're trying to use it in a @angular 6 project, you'll get a warning during npm install and may have trouble during runtime (if the author have real reasons to specify that version as a peer dependency).

    对于作者来说,仅保持对等方的依赖关系是最新的情况并不罕见,因此在许多情况下有可能在构建过程中忽略警告消息并使用库。但是要以一种可信任的方式进行操作,您必须进行一堆测试,以涵盖该库中正在使用的功能。