【问题标题】:Which packages in official Angular boilerplate are really needed and why?真正需要官方 Angular 样板中的哪些包,为什么?
【发布时间】:2019-02-20 13:14:18
【问题描述】:

我的项目有一个 TypeScript/Express 服务器,我想将 Angular 添加到同一个项目中。

我完成了official tutorial,所以我了解了基础知识。

大多数人只会使用官方的 Angular “样板” - ng new appname。但我想知道要添加到package.json 的最小软件包集,以及为什么。

我认为有些包是不必要的,添加这些包是为了让开发人员更容易学习 Angular - 我不想要这些。

CLI 将这些添加为 dependencies:

@angular/animations
@angular/common
@angular/compiler
@angular/core
@angular/forms
@angular/platform-browser
@angular/platform-browser-dynamic
@angular/router
core-js
rxjs
tslib
zone.js

这些为devDependencies:

@angular-devkit/build-angular
@angular/cli
@angular/compiler-cli
@angular/language-service
codelyzer
jasmine-core                     // I assume this is for unit testing
jasmine-spec-reporter            // I assume this is for unit testing
karma
karma-chrome-launcher
karma-coverage-istanbul-reporter
karma-jasmine
karma-jasmine-html-reporter
protractor                       // I assume this is for integration testing
ts-node

其中哪些是实际需要的? (或者换一种说法:我可以删除哪些?)

【问题讨论】:

  • 解释反对意见。这是一个很好的问题。大多数开发人员只是使用样板而不关心细节。我不能那样建立一个专业的系统,我需要知道为什么需要它的所有部分。
  • 不必要的标签,一个问题太多问题...
  • 我用 Jest 测试我的服务器。我可以用它来代替 Jasmine 和 Karma 和 Protractor 专业开发人员会知道这个问题没有意义。
  • 一个 Angular 项目被编译并部署为一组静态文件......所以我认为一切都将在 devDependencies 中。为什么依赖项中有包您可能想了解这两者的概念差异
  • dependencies 中的大部分包都是必需的。您可以根据需要从角度修剪一对。 devDependencies 中的很多内容是可选的,您应该能够通过阅读其中包含的不同模块来回答您需要的内容。

标签: angular angular-cli boilerplate


【解决方案1】:

dependencies。据我所知,在这个列表中没有什么是可选的。

@angular/动画 对于动画。如果没有动画,网页转换会显得突然和不和谐。 Docs

@angular/common @angular/编译器 @angular/core 这三个都是核心库。

@angular/forms 支持 HTML 表单,特别是绑定。

@angular/platform-b​​rowser 支持在不同支持的浏览器上交付 Angular 应用程序。 Docs

@angular/platform-b​​rowser-dynamic 知道如何在特定浏览器上引导应用程序。 Docs

@angular/路由器 支持路由。

core-js JavaScript 的模块化标准库。包括适用于 ECMAScript 5、ECMAScript 6 的 polyfill。Docs

rxjs 支持事件和可观察对象。

tslib 这是一个包含所有 TypeScript 辅助函数的 TypeScript 运行时库。 Docs

zone.js 在 angular2 中使用 zonejs 的主要目的是知道何时渲染。 Docs

devDependencies.

@angular-devkit/build-angular 可能需要 angular-cli 来构建。

@angular/cli @angular/compiler-cli 两者都是 angular-cli 正常工作所必需的。

@angular/language-service Angular 语言服务是一种在 Angular 模板中获取完成、错误、提示和导航的方法。 Docs

codelyzer Angular 项目的静态分析。 Docs

茉莉花核 茉莉花规格报告者 分别用于单元测试和生成覆盖率报告。

业力 业力铬启动器 因果报应-伊斯坦布尔记者 业力茉莉花 karma-jasmine-html-reporter Karma 是一名测试跑步者。茉莉花使用这个。记者用于生成报道。

量角器 用于端到端测试。

ts-node NodeJs 的打字稿。

对于您最初的问题,我不建议您删除任何内容,因为如您所见,他们每个人都在做一些您不想在开发时放松的特定事情。我的小型 Angular 应用程序大约 500Mb,但这没关系,因为一旦我执行ng build,它就会被编译为 20Mb。

此外,正如 linked SO answer 中所指出的,您可以使用 ng new --minimal [name] 生成运行应用程序绝对需要的最小包列表。

【讨论】:

  • 感谢这个非常详细的回答
猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 2016-11-21
  • 2012-05-25
  • 2013-04-26
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
相关资源
最近更新 更多