Avoid this temptation.
Many times when you come into a project with a lot of legacy code that has many issues associated with it, it is tempting to throw in the towel and start over from scratch. After all, greenfield development allows you to use the latest versions of all of the libraries and avoid all of the legacy ickiness.
What people forget is that the existing code has been reviewed, tested, and run in production for a long time. Several years in most cases. Your new code has not. New code is therefore more likely to repeat many mistakes and problems that have been addressed and fixed long ago in the older code. This will be extremely frustrating to the business.
Your new code will probably miss something important. It will probably not have all of the features the customers of the old code base are used to. This will lead to more headaches.
The better solution is refactor the old code into components and services, and upgrade them separately.
Refactor and improve is better than replace and regret.