title: Which packages in official Angular boilerplate are really needed and why?
body: <p>My project has a TypeScript/Express server, and I want to add Angular to the same project.</p>
  
  <p>I completed the <a href="https://angular.io/tutorial" rel="nofollow noreferrer">official tutorial</a>, so I understand the basics.</p>
  
  <p>Most people will just use the official Angular "boilerplate" - <a href="https://angular.io/guide/quickstart" rel="nofollow noreferrer"><code>ng new appname</code></a>. But I want to know <em>the minimum set of packages</em> to add to <code>package.json</code>, and why.</p>
  
  <p>I assume some packages are unnecessary, and were added to make it easier for devs to learn Angular - I don't want these.</p>
  
  <p>The CLI adds these as <code>dependencies</code>:</p>
  
  <pre><code>@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
  </code></pre>
  
  <p>And these as <code>devDependencies</code>:</p>
  
  <pre><code>@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
  </code></pre>
  
  <p>Which of these are actually needed? (or put another way: which of them can I remove?)</p>