A Developer's Tale: Migrating an Angular app from version 10 to 18 by Loïc Magnette

Join Loïc Magnette as he shares real-world strategies and lessons learned from upgrading a complex Angular application from version 10 to 18 step by step.

Key takeaways
  • Migrate Angular versions one major version at a time - attempting to jump multiple versions leads to dependency conflicts and complications

  • Clean up unnecessary dependencies before migration - remove unused packages and verify what’s actually needed in the project

  • Use built-in tools like ng update and schematics for automated migrations, but don’t rely on them completely as manual changes are often needed

  • Run npm ls and npm-dupe to identify dependency conflicts and version mismatches before upgrading

  • Having automated tests provides a safety net during migrations to catch breaking changes

  • Standalone components and the new control flow syntax in Angular 18+ simplify migrations and improve performance

  • Styling/CSS changes between versions can cause breaking changes - test thoroughly and consider CSS migration impacts

  • Node version management tools like NVM or ASDF help manage different runtime requirements between versions

  • Tools like Renovate and Dependabot can help automate dependency updates through automated PRs

  • Migration complexity decreases in newer versions (17->18 is easier than 10->11) due to better tooling and more mature ecosystem

  • Consider signals for state management in newer Angular versions but note they differ from RxJS which remains useful for async operations

  • Remove node_modules and package-lock.json before fresh installs to avoid dependency conflicts during migration