Прежде всего, теги <script>
в вашем примере не будут выполняться из-за способа, которым lit-html добавляет контент в DOM, поэтому вы не должны видеть фактически запрошенные зависимости Bootstrap.
Кроме того, если зависимости Bootstrap в вашем примере были доступны, они будут пытаться использовать некоторую форму document.querySelector('.collapse')
и не смогут найти нужный элемент, поскольку он инкапсулирован в Shadow DOM вашего LitElement. В тех случаях, когда вы можете передать элемент в API, то есть
const elementReference = this.shadowRoot.querySelector('.collapse');
startCollapseWith(elementReference);
, можно использовать легкие решения DOM для теневых деревьев DOM, но я не видел версию Bootstrap, которая бы отображала этот видAPI. Может быть, он где-то существует?
За годы переноса реализации Bootstrap по умолчанию на веб-компоненты велись замечательные разговоры: https://github.com/twbs/bootstrap/issues/28131 и https://github.com/twbs/bootstrap/issues/18015 и https://github.com/twbs/bootstrap/issues/14200 но через эти вопросы вы сможете узнать текущее состояние этого. Компоненты пользовательского интерфейса, особенно в таких вещах, как Bootstrap, которые не сильно инвестируются в конкретную среду (если исключить JQuery), являются отличным примером использования для веб-компонентов, я надеюсь, что этот путь вперед для библиотеки наберет обороты, поскольку оницелевые новые версии.