title: Is it worth to migrate from Angular 2 to Angular 4?
body: <p>Hello SO community and Angularians!</p>
  
  <p>So, I am midway developing a huge platform in Angular 2. And I realized that many external libraries and dependencies for Angular 2 are migrating to the new Angular 4. Giving me many errors, obviously. </p>
  
  <p>I could fork these libraries and use the forked versions and subscribe to main library development or, I could just upgrade to Angular 4 my project. </p>
  
  <p>Questions to be answered in order to determinate if it's worth for me to migrate:</p>
  
  <ul>
  <li><strong>Compatibility with Angular 2.4</strong></li>
  </ul>
  
  <p>I have found some adaptations to ensure compatibility with legacy, like this: <a href="https://github.com/angular/angular/commit/e99d721" rel="noreferrer">https://github.com/angular/angular/commit/e99d721</a></p>
  
  <ul>
  <li><strong>Changes app wide</strong></li>
  </ul>
  
  <p>Do I have to go through my whole app and start fixing things?</p>
  
  <p>I mean, are main functionalities reworked in such way that I will have to review many of them? </p>
  
  <p>Or, are there many build/core incompatibilities that will keep me days occupied fixing compile errors/warnings instead of developing?</p>
  
  <p><strong>I am not asking for someone to do the research for me</strong>, I am asking people that maybe already went through this process or simply know well both versions in order to give me some experience tips, clarifications, etc.</p>
  
  <p>At the moment, I am doing my research here:</p>
  
  <ul>
  <li><a href="https://github.com/angular/angular/blob/master/CHANGELOG.md" rel="noreferrer">https://github.com/angular/angular/blob/master/CHANGELOG.md</a></li>
  <li><a href="http://angularjs.blogspot.it/2017/03/angular-400-now-available.html" rel="noreferrer">http://angularjs.blogspot.it/2017/03/angular-400-now-available.html</a></li>
  <li><a href="https://learninglaravel.net/angular-4-new-features-and-improvements" rel="noreferrer">https://learninglaravel.net/angular-4-new-features-and-improvements</a></li>
  </ul>
  
  <p><strong>UPDATE</strong></p>
  
  <p><strong>I just migrated to Angular 4</strong>. The link that @PierreDuc put in his answer is a very nice tool to have a decent guideline in the migration process.</p>
  
  <p>I would recommend:</p>
  
  <ol>
  <li>Read new features and update yourself with Angular 4. This was specially useful: <a href="https://angularjs.blogspot.it/2017/03/angular-400-now-available.html" rel="noreferrer">https://angularjs.blogspot.it/2017/03/angular-400-now-available.html</a></li>
  <li>Follow Angular's guideline and modify your project: <a href="https://angular-update-guide.firebaseapp.com/" rel="noreferrer">https://angular-update-guide.firebaseapp.com/</a></li>
  </ol>
  
  <p>I would also recommend to commit your current project, create a new branch in your dev repository and proceed with migration in that branch.</p>
  
  <p><strong>An issue that I encountered</strong>:<br>
  <code>Input</code>, <code>Output</code> and <code>ContentChild</code> will be imported from a wrong path. </p>
  
  <p><em>My case:</em> </p>
  
  <pre><code>import { Component, OnInit, OnDestro } from '@angular/core';
  import { Input, ContentChild } from "@angular/core/src/metadata/directives";
  </code></pre>
  
  <p><em>Solution:</em></p>
  
  <pre><code>import { Component, OnInit, OnDestroy, Input, ContentChild } from '@angular/core';
  </code></pre>