Мне удалось успешно внедрить мой компонент stenciljs с включенным shadowDOM, используя расширение chrome. Чтобы быть точным, я искал способ получить путь к файлам внутри расширения в вашем js, и я нашел его.
chrome.runtime.getURL('your relative url')
Шаги для введения компонента трафарета с использованием расширения следующие:
1- Разверните файлы ядра в папке расширения расширения
Разверните ваши файлы component.core.js, component.js и my-component.entry.js в папку сборки расширения
2- Добавление файлов в web_accessible_resources
белый список файлов, которые вы только что добавили в manifest.json
"web_accessible_resources": [
"js/web-component.js",
"js/web-components/web-components.core.js",
"js/web-components/my-component.entry.js",]
3 - добавить JS-файлы в DOM и установить data-resources-url
только добавьте файл component.js в DOM, создав элемент script. Остальные файлы будут загружаться ленивым трафаретом.
Установить атрибут data-resources-url равным папке, в которой присутствуют все три файла. Не забудьте указать абсолютный путь, используя chrome.runtime.getURL('your relative url')
в атрибутах src и data-resources-url. Также убедитесь, что ваш скрипт добавлен после последнего скрипта, который присутствует на странице, иначе он не будет работать (это ошибка в коде трафарета).
ваш скрипт будет выглядеть так:
<script src="chrome-extension://dlahaeelpopfeas/js/component.js" data-resources-url="chrome-extension://dlahaeelpopfeas/js/"></script>
Теперь вы можете добавить свой компонент в DOM и использовать его.