我正在尝试编写一个由ScalaJS和Play框架组成的应用程序。我正在使用ScalaJS bundler。很好地捆绑了我的JavaScript,可以看到生成的文件应该放在哪里。
但是我注意到只有client-jsdeps.js
和client-fastopt.js
可用于该应用程序。这样做的原因是,它们是唯一复制到路径server/target/web/public/main
的文件。我到处都想过,sbt
在任何地方都可以构建文件,配置文件,而我却找不到为什么要复制这些文件,而找不到其他文件。我希望复制-bundle
文件。那个地方在哪里?
值得注意的是,与该应用程序打包在一起的两个文件没有出现在用户可编辑的路径server/public/js
中,而是直接复制到WAR文件中,因此在{{1}中可见}目录。
答案 0 :(得分:1)
对于sbt-web集成,请使用sbt-web-scalajs-bundler
插件而不是sbt-scalajs-bundler
:
addSbtPlugin("ch.epfl.scala" % "sbt-web-scalajs-bundler" % "0.13.1")
然后,在使用sbt-web的项目上启用WebScalaJSBundlerPlugin
:
lazy val server = project
.settings(
scalaJSProjects := Seq(client),
pipelineStages in Assets := Seq(scalaJSPipeline)
)
.enablePlugins(WebScalaJSBundlerPlugin)
lazy val client = project.enablePlugins(ScalaJSBundlerPlugin, ScalaJSWeb)
您还需要按照上一节中的说明在Scala.js项目上设置ScalaJSBundlerPlugin
,并且
their documentation中所述的sbt-web-scalajs
插件。
WebScalaJSBundlerPlugin
插件会自动配置scalaJSPipeline
任务以使用
捆绑包,而不是Scala.js编译的输出。
您可以看到完整的示例here。
您遵循该指南吗?