Есть много вариантов как сделать иначе..
1) Можно вообще не париться, так как скрипт грузанется из кеша и производительность потеряна не будет если не учитывать + несколько дополнительно запарашиваемых файлов
2) Можно сгруппировать общую функциональность в один объект и взять его из дочернего она через let foo =
window.top.foo, либо отдать из главного в дочернее
фрейм.contentWindow.foo = foo, только нужно еще контекст передавать, что опять же колхоз.
3) Засунуть всё в одно окно и думать как выкручиваться.
Но в том то и дело, без засовывания в одно окно и без костылей, есть какое-то традиционное решение данной проблемы, ведь за 26 лет JS, с ней точно кто-то сталкивался... Либо как это было принято обходить во времена когда не существовало изменение контента без перезагрузки страницы, но что бы родительское окно юзало ту же функциональность без перезагрузки, просто не парились и загружали файлы по несколько раз ?
Может конечно показаться задача странной, но всё же она существует и меня интересует есть ли какой-то некостыльный(традиционный) способ её решения.