gpt4 book ai didi

scala.js - JVM跨项目如何加载javascript

转载 作者:行者123 更新时间:2023-12-02 03:15:24 25 4
gpt4 key购买 nike

我遇到了一些困难,想知道是否有人可以帮助我。我有以下 Build.scala,我正在尝试从 JVM 项目访问编译 javascript。

lazy val webProject = CrossProject(base = file("./main/web"), crossType = CrossType.Full, jvmId = "api-gateway", jsId = "web-js")
.settings(
name := "web",
unmanagedSourceDirectories in Compile += baseDirectory.value / "shared" / "main" / "scala",
libraryDependencies ++= Dependencies.Client.sharedDeps.value)
.jvmSettings(
persistLauncher := true,
persistLauncher in Test := false,
libraryDependencies ++= Dependencies.Client.jvmDeps.value)
.jsSettings(libraryDependencies ++= Dependencies.Client.jsDeps.value)

lazy val webJS = webProject.js.enablePlugins(ScalaJSPlugin)

lazy val webJVM = webProject.jvm
.settings((resources in Compile) += (fastOptJS in(webJS, Compile)).value.data)
.dependsOn(dominos)

生成编译javascript

[info] Fast optimizing /.../main/web/js/target/scala-2.11/web-fastopt.js

当我尝试通过运行 get server 访问编译的 javascript 时,找不到它。

object Main extends App {

implicit val system = ActorSystem("my-system")
implicit val materializer = ActorMaterializer()
implicit val executionContext = system.dispatcher

val routes = pathEndOrSingleSlash(getFromResource("web-fastopt.js"))

Http().bindAndHandle(routes, "localhost", 8080)
}

这行是不是应该在运行时将 javascript 添加到 JVM 的资源文件夹中?

(resources in Compile) += (fastOptJS in(webJS, Compile)).value.data

如有任何帮助,我们将不胜感激。

最佳答案

由于某种原因,我觉得这样的方法不适用

(resources in Compile) += (fastOptJS in(webJS, Compile)).value.data

相反,我不再需要移动 fastOptJS 文件

lazy val webJVM = webProject.jvm
.settings(Seq(fastOptJS, fullOptJS, packageJSDependencies)
.map(pkg ⇒ crossTarget in(webJS, Compile, pkg) := scalaJSOutput.value))

我还需要添加

getFromResourceDirectory("")

到 Akka Http 路由。

关于scala.js - JVM跨项目如何加载javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37306954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com