Upgrading Angular from Version 14 to 18: A Real-World Migration Experience
Recently, I had the task of upgrading a real-world customer interaction portal for a logistics company from Angular version 14 to the latest Angular 18. This was not a hobby project but a complex, production-grade application with various third-party dependencies, including Angular Material. The upgrade presented its fair share of challenges, especially with breaking changes in Angular Material, which required replacing imports and components to align with the new version.
To make the process engaging, I recorded a video of the migration without any prior preparation. This raw approach allowed viewers to see the real issues I faced during the upgrade. While I paused the recording during lengthy compilations and fixes, the video captured the key moments of troubleshooting and resolving challenges as they emerged.
Every project comes with its own unique set of errors and obstacles during upgrades. My aim with this video is to offer an overview of the steps you can follow and how to approach problem-solving when upgrading Angular versions. Toward the end of the video, I encountered an issue with a third-party library that wasn’t compatible with Angular 18.2.8. At that point, I had three options:
1. Open a ticket on the library’s GitHub repository, asking the maintainers to fix the issue.
2. Fix the problem myself and submit a pull request.
3. Replace the library with a more up-to-date and well-maintained alternative.
Since the library in question was not actively maintained, I chose the third option and replaced it with a different state management solution.
Ultimately, the purpose of the video is to demonstrate how to approach upgrading Angular from one major version to the next. Every migration is unique, but the core principles of troubleshooting and adapting to new changes remain the same.
If you’re interested in seeing the full migration process, including the challenges and solutions along the way, check out the video. I’d love to hear your thoughts, so feel free to watch and share your comments or questions below!
Cheers!