I've been very busy with the topic lately, because many have the same problem again and again (me, of course). Nowadays, you often hear the concept of micro-frontends. The concept is about designing the frontend to be extensible and scalable. Especially in the time when many companies have both Angular and React and Vue developers.
The following approaches came out of my research:
Links :
You can create your new app and have a hyperlink from your legacy app. (You must have a page reload when you switch beetween the both apps.)
Iframes :
a Software architekt builded a meta router to deal with iframes and single page application:
Take a look at this https://github.com/manfredsteyer/meta-router
Metaframeworks:
Metaframeworks allow you to have a communication beetween differents
apps builded using differents frameworks:
here a simple example with the idea of single page application: https://single-spa.js.org/
NPM Packages:
In order to deal with npm packages you can use as the other answerer mentioned the concept of Angular elements. You have to create a shell app and another independently apps that will be registred as elements in your shell app.
Take a look at this example.: Building micro frontends — angular elements
Mosaiq
The online shop Zalando
faced to the same problem and created a framework in order to deal with the problem: https://www.mosaic9.org/
Plugin Architecture
Angular libraries
I Think a right way is to have in a app the same framework and the same version of this framework (e.g Angular 7). I will prefer to take a time a do a upgrade to a typescript version of angular. I hope the answer can be usefull for others.