Я делаю именно это в одном из моих проектов, но с классом main
только для JVM.Браузер загружает переданный scalajs-код и метод небольшого хука, запускаемые js-файлом, инициализирующие ядро, с различными параметрами.Это работает для Webworker
и Frontend-thread и даже для SharedWorker
Это может выглядеть так:
importScripts("client-fullopt.js");
importScripts("conf/app-config.js");
MyProject.WebWorkerActorParent.initBackend(myProjectConfig);
MyProject.WebWorkerActorParent.addWorker(this);
на внешнем интерфейсе это может быть глобальный импорт скрипта идругая подпрограмма инициализации.
<script src='client-fullopt.js' />
<script>
MyProject.WebWorkerActorParent.initFrontend();
</script>
Конечно, ничто не мешает вам дополнительно создавать различные подпроекты в sbt
, которые все используют один и тот же общий библиотечный проект и объединяют свои специфические потребности для целевой платформы вотдельный проект.