Я пытаюсь создать компонент Svelte, содержащий canvas, который бы показывал приложение webgl, скомпилированное по emscripten. В традиционном html это требует следующей настройки:
<script>
var canv = document.getElementById('canvas');
var Module = { canvas: canv };
</script>
<script src="index.js"></src>
Ближайшее, что я получил к нему, было следующим:
<script>
let canv;
let Module = { canvas: canv };
</script>
<svelte:head>
<script src="index.js"></src>
</svelte:head>
<canvas bind:this={canv}></canvas>
Который загружает модуль, но индексирует . js не удается инициализировать с некоторой ошибкой:
exception thrown: TypeError: eventHandler.target is null,registerOrRemoveHandler
Что в основном является индексом. js не удается увидеть Module
- эта ошибка остается той же, если я вообще не инициализирую Module
.
Я понимаю, что мог бы немного поиграть с опцией компилятора MODULARIZE
(я пока не рассматривал его), но поскольку это приложение webgl, я бы предпочел, чтобы оно запускалось при загрузке, как в традиционном html, таким образом, я могу сосредоточиться на C ++, не настраивая сантехнику самостоятельно.
Как правильно это сделать?