- Stable and recommended approach
Create a new angular application in version 16 and start adding internal libraries and feature modules.
Advantages:
- Stable code in every step of migration process
- Easier identification of breaking changes (for dependencies) since you would be configuring from scratch.
- Predictable timeline
- Paves the way for code refactoring , modularization and clearing other technical debts.
Disadvantages
- Migration process is longer
- Longer testing period
- Unstable approach
Upgrade angular application's version one by one with unstable code in local, complete all the migrations and fix the breaking changes at the end.
Advantages:
- Migration process might be shorter compared to previous one. It depends on external dependencies you've in your project though.
Disadvantages:
- Unpredictable timeline
- If your dependencies with external packages are more, then bunch of migration scripts you might have to execute
- Breaking changes are more.