scalajs:一个项目中有多个应用程序?

Gra*_*ayR 2 scala sbt scala.js

如果我正确理解scalajs文档,则每个项目只能生成一个JavaScript。有办法避免这种限制吗?

目前,我为Play框架创建了scalajs子项目。在这个子项目中,我计划为正在处理的服务创建所有scalajs应用程序。现在我发现了这个限制,它确实令人困惑和烦恼,因为我能想到的仅有的两个解决方案是:

  1. 创建一个我无法接受的“大型脚本”
  2. 为每个scalajs应用创建单独的子项目

两者对于大型项目确实是不可接受的。

Ale*_*lex 5

它自己的子项目中的每个scalajs都可以通过SBT MutliProject进行管理, 这是play项目的一个比较复杂的示例,其中有6个以上的子项目可编译为一个文件。scala-js-binding 检查Build.scala

    lazy val preview = (project in file(".")).enablePlugins(PlayScala) settings(previewSettings: _*) dependsOn shared dependsOn bindingPlay aggregate frontend

  //aggregate scalaJs

  lazy val frontend = Project(
    id   = "frontend",
    base = file("frontend")   ) dependsOn shared dependsOn binding
Run Code Online (Sandbox Code Playgroud)

...

      scalajsOutputDir     := baseDirectory.value / "public" / "javascripts" / "scalajs",

//fastOptJs - not optimized (3Mb)
      compile in Compile <<= (compile in Compile) dependsOn (fastOptJS in (frontend, Compile)),

//fullOptJS - fully optimized (330k)
      dist <<= dist dependsOn (fullOptJS in (frontend, Compile)),
Run Code Online (Sandbox Code Playgroud)