在 Play 中,如何将 js 文件从 ScalaJS 客户端复制到服务器?
In Play, how to copy js files from ScalaJS client to server?
我正在尝试编写一个部分是 ScalaJS 和部分 Play 框架的应用程序。我正在使用 ScalaJS bundler。它很好地捆绑了我的 JavaScript,我可以在它们应该去的地方看到生成的文件。
但我注意到该应用程序只能使用 client-jsdeps.js
和 client-fastopt.js
。原因是它们是唯一复制到路径 server/target/web/public/main
的文件。我找遍了所有我能想到的地方,sbt
构建文件、配置文件,到处都是,但我找不到为什么这些文件被复制而没有其他文件。我想改为复制 -bundle
文件。该设置在哪里?
值得注意的是,与应用程序打包的两个文件并没有出现在用户可编辑的路径中,server/public/js
,它们被直接复制到WAR文件中,因此可见在 target
目录中。
对于 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。
你遵循那个指南吗?
我正在尝试编写一个部分是 ScalaJS 和部分 Play 框架的应用程序。我正在使用 ScalaJS bundler。它很好地捆绑了我的 JavaScript,我可以在它们应该去的地方看到生成的文件。
但我注意到该应用程序只能使用 client-jsdeps.js
和 client-fastopt.js
。原因是它们是唯一复制到路径 server/target/web/public/main
的文件。我找遍了所有我能想到的地方,sbt
构建文件、配置文件,到处都是,但我找不到为什么这些文件被复制而没有其他文件。我想改为复制 -bundle
文件。该设置在哪里?
值得注意的是,与应用程序打包的两个文件并没有出现在用户可编辑的路径中,server/public/js
,它们被直接复制到WAR文件中,因此可见在 target
目录中。
对于 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。
你遵循那个指南吗?