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

Vik*_*ram 3 package npm angular

我已经开始构建一个新的角度2应用程序.我已经阅读了文章,并从github下载了一些免费应用程序,所有这些应用程序都包含angular/comman包以及其他一些软件包.我安装了angular包,并将其添加"angular": "^1.6.5"到package.json文件中.我不确定我们是否可以获得完整包装然后我们为什么单独安装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",
Run Code Online (Sandbox Code Playgroud)

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

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

Max*_*kyi 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.

另见官方文档.

  • 文档链接:https://angular.io/guide/npm-packages#feature-packages (3认同)