Добавление скалатагов в проект фреймворка Play
У меня есть проект Play Framework с клиентской и серверной частями. Клиентская часть использует scala.js. Я пытаюсь использовать скаляры в сценарии на стороне клиента.
В build.sbt для проекта я добавил "com.lihaoyi" %% "scalatags" % "0.5.5"
в библиотеку зависимости. Затем IntelliJ дает мне правильное завершение кода для типов скалатагов. Страница следующая:
package app
import scala.scalajs.js
import org.scalajs.dom
import scalatags.Text.all._
object App extends js.JSApp {
def main(): Unit = {
dom.document.getElementById("scalajsShoutOut").innerHTML = h1("Hello").render
}
}
Однако при запросе страницы я получаю ошибки компилятора:
[error] Referring to non-existent class scalatags.Text$all$
[error] called from app.App$.main()scala.Unit
[error] called from scala.scalajs.js.JSApp$class.$$js$exported$meth$main(scala.scalajs.js.JSApp)java.lang.Object
[error] called from app.App$.$$js$exported$meth$main()java.lang.Object
[error] called from app.App$.main
[error] exported to JavaScript with @JSExport
[error] involving instantiated classes:
[error] app.App$
etc.
Какие другие настройки требуются?
1 ответ
Решение
Вы должны использовать %%%
вместо %%
в зависимостях проекта Scala.js:
"com.lihaoyi" %%% "scalatags" % "0.5.5"