«Есть ли лучший путь» зависит от многих переменных в вашем проекте, и на это действительно нет ответа.
Более важным здесь является понимание основной идеи оболочки приложения, по крайней мере, на мой взгляд. Когда вы ворчите, вы сможете настраивать свои переменные и свободно выбирать нужные технологии. Генерация HTML с помощью Handlebars вполне подходит, если она подходит для вашего приложения. HTML-браузер быстро рендерится (по сравнению с JS-файлами), поэтому он идеально соответствует идее оболочки.
С оболочкой приложения ваше приложение структурировано в виде постоянно меняющейся статической (ish) компоновки (меню, заголовка, нижнего колонтитула и т. Д.) И динамической части. С этим разделением идея оболочки приложения может использовать Service Workers следующим образом:
- Сервер поставляет оболочку приложения (обычно только HTML / CSS)
- Браузер отображает это очень быстро и кэширует его для автономного использования через Service Worker
- После показа оболочки JS вступает во владение и начинает извлекать динамический контент (что показано «внутри» оболочки)
- Браузер отображает динамическую часть с использованием некоторой платформы JS (обычно)
Эти отдельные части могут быть очень слабо связаны. Вы можете использовать любые средства для создания оболочки приложения и что-то совершенно другое для динамической части. Или вы можете реализовать их с помощью той же самой интерфейсной среды. Это не имеет большого значения с точки зрения архитектуры оболочки приложения. Дело в том, что оболочка должна быть доступна очень быстро, чего вам будет легче достичь, если вы отправите только HTML / CSS.