【问题标题】:Angular NX - Import shared libraries by versionAngular NX - 按版本导入共享库
【发布时间】:2020-07-07 10:31:46
【问题描述】:

我是一个相对较新的 Angular 开发人员,希望构建一组共享自定义组件库(可能还有其他一些实用程序/接口)的 Angular 应用程序。

Nx by Nrwl 看起来是一个很好的系统来组织这些片段,所以我想我会使用它来构建。

我有一个理想的规范,但是,从我的搜索来看,它看起来像 Nx 并不真正支持:版本库的能力,这样一个应用程序可以拉入 1.0 版,而另一个可以拉入 2.0 版例如,相同的组件库。

这样,我可以更改应用程序 2 的下拉组件,而不会影响应用程序 1,因为应用程序 2 只会指向新库,而应用程序 1 会指向旧库。

是否有人知道在 Nx 中执行此操作的好方法(或解决此问题的好资源;或找到这些资源的好搜索词)?无法在此处找到指导,或者无法确定这是否可行。

显然有一些更骇人听闻的方法可以做到这一点:

  • 具有重复的“版本化”组件(Dropdown1、Dropdown2)
  • 对组件库执行相同的操作 (import @cl2/Dropdown)

但从各种角度来看,这些解决方案并不理想,包括应用开发者需要知道每个组件的最新版本、丑陋的组件名称、臃肿的代码库等。

【问题讨论】:

    标签: angular nrwl nrwl-nx


    【解决方案1】:

    NX 和 monorepo 方法的全部意义在于一切都应该运行“主”版本。

    通过对所有内容进行测试并从同一个 repo 运行所有内容,您可以确保您的整个代码库保持干净和最新。

    如果您不想这样做,您可以简单地将组件库作为单独的 repo 并将它们发布到 npm,然后使用 npm 将它们拉入不同的应用程序。

    【讨论】:

    • “一切都应该运行“主”版本”-> 组件的紧密耦合生命周期-> 单体。这可能是 NX 方法,但不是 monorepo 方法固有的要求。 monorepo != 单体。我对 NX 也有同样的疑问。有没有办法拥有独立的生命周期?
    猜你喜欢
    • 2023-01-21
    • 2022-12-16
    • 2017-10-08
    • 2018-10-07
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2011-01-28
    相关资源
    最近更新 更多