Node.js 保留环回3的缺点是什么

Node.js 保留环回3的缺点是什么,node.js,frameworks,loopbackjs,loopback4,Node.js,Frameworks,Loopbackjs,Loopback4,我们有一个相当大的环回3服务器,现在已经到了2020年“生命终结” 我知道尽快迁移到Loopback 4的建议,但我对进行迁移犹豫不决-LB4上没有(尚未)LB3的大部分功能,LB4模型关系是LB3的一个子集,仅涉及大量工作。我也知道(并且已经测试过)将LB3应用嵌入到LB4应用中 实际上,在可预见的未来,继续使用LB3的实际缺点是什么?我知道我将失去未来的补丁和修复,例如安全更新,我想LB3将有nodejs版本的封顶(v10?)。但例如,npm模块是否会变得不可用,或者服务器是否会有一天“停止

我们有一个相当大的环回3服务器,现在已经到了2020年“生命终结”

我知道尽快迁移到Loopback 4的建议,但我对进行迁移犹豫不决-LB4上没有(尚未)LB3的大部分功能,LB4模型关系是LB3的一个子集,仅涉及大量工作。我也知道(并且已经测试过)将LB3应用嵌入到LB4应用中

实际上,在可预见的未来,继续使用LB3的实际缺点是什么?我知道我将失去未来的补丁和修复,例如安全更新,我想LB3将有nodejs版本的封顶(v10?)。但例如,npm模块是否会变得不可用,或者服务器是否会有一天“停止启动”?还有什么要考虑的吗?

(如果这有管理压力的味道-你是对的)

缺点 有两个主要缺点:

缺乏社区支持 由于LoopBack 3是核心维护者的寿命终止d(EoL),社区的利益也将发生变化。部分社区可能会选择使用其他替代方案,而其他社区可能会迁移环回4

文件和回购协议都不会有任何进展,但如果你在某个特定问题上遇到困难,你可能得不到社区援助

随着时间的推移,环回4将继续改进,迁移指南将与之一起迭代。因此,准备好后,您将有同样的机会迁移到环回4

安全 任何安全补丁,包括上游依赖的补丁,都不会被应用。这使得很难确保软件安全,因为环回3将不再受益于半自动的依赖项更新

若上游依赖安全补丁很重要(它们应该很重要),建议维护一个分支包

该流将如下所示:

  • 把它交给另一家GitHub回购公司
  • 使用自动更新工具,如Correlator
  • 将环回3依赖项更改为重新发布的变体
  • Node.js安全补丁也可能很重要。因此,应尽可能使用Node.js的最新LTS版本对包进行测试

    维护包括更新依赖项和修复由这些更新引起的任何不兼容


    包裹会停止工作吗? 很可能不是。除了任何未解决的bug之外,没有理由让包“崩溃”

    作为保证,除非在极端情况下,否则NPM不允许取消发布软件包,并且
    软件包锁定.json
    NPM ci
    将确保大部分可复制的安装

    但是,包锁仅适用于直接依赖项。因此,如果任何上游依赖项应用了向后不兼容的更改,而没有semver major,则包可能会意外中断

    这可以通过使用NPM Shrinkwraps来缓解,它将拍摄整个依赖关系树的快照

    Node.js版本是否会限制在10.x? 对。这不是一个硬性要求,但是不建议冒险进行隐藏的破坏性更改

    环回3是一个覆盖良好的应用程序(在测试方面)。因此,测试套件可用于测量和检测Node.js更新之间的任何潜在不兼容性

    管理呢? 如果您能够维护loopback3包的分支,运行测试套件,并通过CI/CD管道更新依赖项和Node.js LTS版本,那么它应该是相当安全的

    环回3是一个相当成熟的项目。因此,可以假设发现了大多数关键缺陷。LTS维护期旨在检测此类缺陷,而无需添加任何可能导致回归或新关键缺陷的新功能尽管如此,在EOL后仍然可以检测到新的关键缺陷。

    您必须自己权衡利弊。记住所有这些,它的安全程度取决于环回3上运行的服务类型、业务需求以及您愿意承担的风险

    安全的软件开发生命周期非常重要,构建产品和服务时应牢记这一点,以防止或缓解这些问题

    何时迁移到环回4 我现在就开始计划迁移。由于LoopBack 4是一个完全重写的元框架,以迎合Node.js中流行的TypeScript和OOP,因此迁移需要一些努力


    如果在环回4中需要某些功能,那么这个响应需要很多TX。我想我们对是否支持LB4犹豫不决。我们仍然在忙着将遗留的AngularJS“升级”到Angular8/9,这更像是一次完全的重写。我们需要的东西可以存在很多年-升级可以接受-但不能重写。。。