如何创建一个至少有三级项目树的复杂角度库



我需要创建一个角度库,但不是一个简单的库。我希望它与https://github.com/angular/angular.我的项目库应该像下面的树一样:

  • @myglobal/special
  • @myglobal/special/common
  • @myglobal/specific/core
  • @myglobal/specific/specific

我执行了中所述的以下建议步骤https://angular.io/guide/creating-libraries链接:

  • ng new myglobal--create application=false
  • cd myglobal
  • ng生成特定库

但我只能有以下树:

  • myglobal:
    • package.json文件,其中包含以下字段=>quot;name":"myglobal">
    • 项目文件夹:
      • 特定文件夹:
        • package.json文件,其中包含以下字段=>quot;name":"特别的">
        • src文件夹:-lib文件夹

即myglobal/projects/special/src/lib/

我有一种感觉,如果我想拥有像@global/specific/common之类的东西,我需要建立一个项目树https://github.com/angular/angular以便能够设置正确的";name":在package.json文件中,如:"name":"全局/特定/通用";否则,我在我的VScode编辑器上得到以下错误:"字符串与"的模式不匹配^(?:@[a-z0-9-~][a-z0-9-._~]/(?[a-z0-9-~][a-z0-9-._~][em>$"quot我执行ng build命令时也有错误。

我想有一个像angular master这样的树项目https://github.com/angular/angular即:

  • angular主文件夹:
    • package.json文件,其中包含以下字段=>quot;name":"角srcs";,(为什么不是@angular而不是angular srcs?(
    • 软件包文件夹:
      • 公用文件夹:
        • package.json文件,其中包含以下字段=>quot;name":"角/公共">
        • http文件夹:
          • package.json文件,其中包含以下字段=>quot;name":"angular/common/http">
          • src文件夹

即angular master/packages/common/http/src

  1. 因此,我的问题是:是否有一个angular cli命令可以创建与https://github.com/angular/angular项目树

他们是否使用了新的角度主控器--create application=false然后cd角度母版和之后ng生成库公共他们是否手动将项目重命名为?他们是如何通过ng命令或手动在公共文件夹中创建http文件夹及其内容的?

  1. 关于导入我的库的问题:当我试图导入以前在存储库上发布的库时,我也希望能够像导入有角度的库包一样导入它,这意味着做一些事情,比如:从"@angular/common/http"导入{HttpClientModule}

看看我的例子,我希望能够写这样的东西从"@global/specific"导入{ParticularComponent};而不是我必须写的内容,即:从'@global/projects/epecial/src/>lib/special.component'导入{ParticularComponent};

有没有一种特定的方式来发布我的图书馆,以便能够做到这一点?

非常感谢你的帮助。

我建议您使用Nx工作区。Nx是一组用于现代企业级应用程序开发的Angular CLI电源。使用Nx时,可以在同一工作空间中创建多个应用程序和库。库可以在库和应用程序之间共享。它们可以导入到"工作区"中的任何位置。

我知道这不是你的答案,但根据我的行业经验,它可以为你指明一条正确的道路。

所有内容都记录在这里:https://nx.dev/angular/getting-started/why-nx

最新更新