为什么角度包装是分开的,为什么我们需要它们

时间:2017-07-21 06:36:31

标签: angular npm package

我已经开始构建一个新的角度2应用程序。我已经阅读了文章,并从github下载了一些免费应用程序,所有这些应用程序都包含angular / comman包以及其他一些软件包。我安装了angular包,并在package.json文件中添加了"angular": "^1.6.5"。我不确定我们是否可以获得完整的包装然后我们为什么单独安装comman包?

当我检查其他应用时,他们大多数都有以下

"@angular/common": "2.0.1",
"@angular/compiler": "2.0.1",
"@angular/core": "2.0.1",
"@angular/forms": "2.0.1",
"@angular/http": "2.0.1",
"@angular/platform-browser": "2.0.1",
"@angular/platform-browser-dynamic": "2.0.1",
"@angular/router": "3.0.1",

它们都是角度核心的一部分吗?我在这里看不到角度包。

是否有角度2包装的文章或指南?

1 个答案:

答案 0 :(得分:6)

以下是每个包的简要说明:

必需

  • @ angular / core - 包含装饰器,组件视图,更改检测等核心功能。
  • @ angular / compiler - 包含Angular编译器。

根据环境和设置要求

  • @ angular / platform-b​​rowser - 包含引导应用程序和使用DOM所需的浏览器特定代码。如果您在浏览器以外的平台上使用Angular,则可能不需要。
  • @ angular / platform-b​​rowser-dynamic - 包含应用程序动态引导程序的实现。如果您使用AOT,则不需要。

通常需要

  • @ angular / common - 包含常用指令和管道
  • @ angular / forms - 包含表单实现
  • @ angular / http - 包含http客户端实现
  • @ angular / router - 包含路由器实现

不将它全部打包到一个巨大的@angular包中的原因是因为您可能不需要运行时中的所有内容。您的应用程序可能不使用表单或内置指令(如ngFor),也可能不使用路由。为什么要将它全部加载到浏览器中?

此外,有时需要第二组包,有时不依赖于设置。运行时唯一需要的是@angular/core

另见the official docs