使用本地Angular CLI工具包,LernaJS和ng-packagr有什么区别?

时间:2019-03-27 17:54:31

标签: angular lerna ng-packagr

我对Angular并不陌生,但是我对编写自己的Angular组件库并不陌生,因此我一直在尝试学习有关如何构建自己的库并使它们可以通过npm访问的更多信息。到目前为止,我发现有3种工具似乎在它们周围有很多社区/吸引力。

  1. LernaJS
  2. ng-packagr
  3. Native Angular CLI

据我所知,LernaJS是一种与框架无关的软件包管理工具,它似乎主要用于管理彼此高度依赖的软件包之间的符号链接,而不必自己管理链接。还具有使用统一语义版本控制策略发布所有软件包的功能。

然后是ng-packagr,我看到它有一个庞大的协作者社区,我发现了一些教程和文章,内容涉及如何使用ng-packagr构建不同场景所需的所有不同类型的模块包( ESM,FESM,AMD,UMD等)。我第一次使用此工具的尝试并不顺利,因为我在将package.json文件复制到dist文件夹中时遇到了问题,这会改变相对路径并导致我遇到问题。我确定这是我的问题,而不是该工具的问题。

最后,存在本机Angular CLI,允许您使用ng new [workspace-name] --create-application=false,这将创建一个“空白” Angular工作空间来开始构建库。然后,在该工作空间中,我可以使用ng generate library [name]创建我的库,然后最终使用ng generate application [name]创建一个托管在localhost:4200上的“沙盒”应用程序,可以用来测试组件库。 / p>

以我有限的经验,第三个选项似乎对我来说效果最好。我没有遇到任何问题,无法使用CLI生成库并让“沙盒”应用程序导入这些模块/组件并相应地使用它们。它也是Angular的本机工具,因此我知道它将始终遵循对我来说很有吸引力的Angular约定。

所以我的问题是,仍然有使用LernaJS和/或ng-packagr的好处,还是在Angular建立自己的解决方案之前只是解决该问题的解决方案?

0 个答案:

没有答案