В Play, как скопировать js-файлы с клиента ScalaJS на сервер? - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь написать приложение, которое будет частично ScalaJS и частично Play Framework.Я использую ScalaJS-упаковщик .Он хорошо связывает мой JavaScript, и я могу видеть получившиеся файлы, куда они должны идти.

enter image description here

Но я заметил, что только client-jsdeps.js и client-fastopt.js доступны для приложения.Причина в том, что они являются единственными файлами, которые копируются по пути server/target/web/public/main.Я искал повсюду, где только мог подумать, sbt создавать файлы, файлы конфигурации, везде, и я не мог найти, почему эти файлы копируются, а другие нет.Я бы хотел, чтобы файлы -bundle были скопированы.Где находится этот параметр?

Стоит отметить, что два файла, которые поставляются вместе с приложением, не отображаются в редактируемом пользователем пути, server/public/js, они копируются непосредственно в файл WAR и поэтому видныв каталоге target.

1 Ответ

0 голосов
/ 12 сентября 2018

Из документации :

Для интеграции с sbt-web используйте плагин sbt-web-scalajs-bundler вместо sbt-scalajs-bundler:

addSbtPlugin("ch.epfl.scala" % "sbt-web-scalajs-bundler" % "0.13.1")

Затем включите WebScalaJSBundlerPlugin в проекте, который использует sbt-web:

lazy val server = project
  .settings(
    scalaJSProjects := Seq(client),
    pipelineStages in Assets := Seq(scalaJSPipeline)
  )
  .enablePlugins(WebScalaJSBundlerPlugin)

lazy val client = project.enablePlugins(ScalaJSBundlerPlugin, ScalaJSWeb)

Вам также необходимо настроить ScalaJSBundlerPlugin в проекте Scala.js, как описано в предыдущем разделе, и sbt-web-scalajs плагины, как описано в их документации .

Плагин WebScalaJSBundlerPlugin автоматически настраивает задачу scalaJSPipeline на использование связки, а не выходные данные компиляции Scala.js.

Вы можете увидеть полный пример здесь .


Вы следуете этому руководству?

...