Я бы разрешил это с помощью модулей. Модули декларируют свои зависимости явно, и вам нужно только сослаться на модуль верхнего уровня на странице; остальное будет загружено в соответствии с деревом зависимостей. Так, например, B.js
будет:
export class B {
// ...
}
Тогда A.js
будет:
import { B } from "./B.js";
export class A extends B {
// ...
}
Возможно, ваша основная точка входа (main.js
или что-то еще) будет иметь:
import { A } from "./A.js";
// ...
Тогда ваша страница имеет
<script type="module" src="./main.js"></script>
... и другие зависимости загружаются по мере необходимости.
Это работает с поддержкой собственных модулей в браузерах, и / или если вы используете такой пакет, как Rollup. js, Webpack, ...