requirejs
PS ответ к комменту:
>Но весь js размазан по сотне тысяч строк html-файлов
Нет, у нас ангуляр, только 1 html. Но если код так размазан - то это плохая архитектура всего приложения, надо что-то менять. Например, не стоит писать часть js в html, а часть в файлах. Оставить только отдельные js-файлы. Серверные вставки заменить на обращение к АПИ. Разбивать всё на компоненты так, чтобы каждый компонент был в своей папке вместе с его стилями, скриптами и статикой (картинки, шрифты). Собирать всё каким-нибудь сборщиком (Gulp, например). Тогда бардак уменьшится на порядки.
>Как поддерживать работоспособность, когда часть кода уже в модулях, а часть — нет?
Очень просто, надо описывать не amd-файлы в блоке shim в настройках requirejs. За подробностями - в доки.