Как мне импортировать материальный веб-компонент в SvelteKit?


person user1059939    schedule 19.06.2021    source источник


Ответы (1)


Вау, это сообщение об ошибке очень бесполезно. В проекте, не относящемся к TS SvelteKit, вы получаете Error when evaluating SSR module /node_modules/lit-html/lib/template-result.js: ReferenceError: window is not defined, что немного яснее о том, что происходит.

При импорте материальных веб-компонентов выполняется код, использующий window, который недоступен на сервере. Из-за этого Vite выдает ошибку при попытке обработать импортированную mwc-button библиотеку. Вы можете использовать динамический импорт. в функции жизненного цикла Svelte onMount, чтобы библиотека импортировалась только на клиенте. Вам нужно будет сделать это с любым импортируемым веб-компонентом.

<script>
    import { onMount} from 'svelte';
    onMount(async () => {
        await import('@material/mwc-button');
    })
</script>

<mwc-button>Button</mwc-button>

Для получения дополнительной информации см. Как использовать клиентскую библиотеку, которая зависит от документа или окна? вопрос в FAQ по SvelteKit.

person Geoff Rich    schedule 20.06.2021