角模块与库

时间:2018-06-22 22:37:51

标签: angular angular-cli angular6 angular-cli-v6 angular-library

太棒了,Angular发布了版本6,CLI提供了生成库的选项-他们称其为“备受期待的功能”。

现在,从业务角度来看,我想知道:

  • 为什么实际上需要这个,
  • 为什么在现有项目中而不是一个单独的项目,您可以像往常一样通过npm安装...
  • 如果您想在项目中使用它,为什么不为此使用模块。

所以我明白了,在npmjs上发布了一些东西,希望整个世界以及未来的连接事物都需要它。图书馆,很棒。

在一个更大的公司的大型系统中,我们可以重用一个库,但是我们已经能够使用一个模块重用东西。我需要分别构建库并在每次更改内容时重新编译。

使用库而不是模块的原因是什么?

(目前,我想说一个lib甚至可以大于一个模块,所以我会 just 使用它更好地组织我的应用程序)

2 个答案:

答案 0 :(得分:4)

this website上,我找到了一个很好的解释。

模块

inside of a project,让我们将属于一起的组件捆绑在一起。我们可以在需要的地方导入该模块,而不是在根级别声明所有组件。即AuthModule可以处理所有与auth相关的内容。无需让应用知道该模块正在使用什么组件。

图书馆

在公司中,有很多不同的应用程序,将来某些/许多应用程序可能会基于角度。

DevOps希望省心,将事情放在一个地方,因此Angular CLI团队引入了工作区-可以包含多个项目。

然后共享诸如AuthModule之类的东西变得容易。我们建立一个库,并在不同的项目之间共享。不再需要将此代码复制到每个项目的核心文件夹中。

原始文字:

  

Angular 6最少谈论的功能之一是Angular CLI工作区。工作区或Angular CLI工作区使角度开发人员能够在一个工作区中拥有多个项目。这会将您的所有项目置于同一工作空间下。这不仅限于应用程序,还包括角度库。

     

这使开发人员可以自由地将大型应用程序分解为较小的应用程序和模块。然后,可以使用这些特定模块在应用程序之间共享诸如身份验证模块之类的模块。通过使用由Angular CLI生成和管理的共享库减少代码重复,从而改善了工作流程。

太好了!谢谢您的回答,有了这个道理。

答案 1 :(得分:1)

扩展@hogan答案:

  • 它们还通过生成一个“ dist”文件夹来提供构建NPM软件包的简便方法,该文件夹封装了库和NPM版本,使其远离当前开发人员状态或开发人员工作区。

  • 使用AngularCLI创建一个与我们想要的Angular库同名的工作区。

  • -前缀选项,AngularCLI生成器将自动为正确的库或组件环境使用前缀。

  • AngularCLI意识到它需要“ ng-packagr”。它将其添加到工作区package.json

  • 中的devDependencies中
  • 用法,现在您可以从angularCLI进行构建,测试以及更直接的操作。