You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scalajs-react服务端渲染集成遇阻:SBT配置问题求助

问题:Scalajs-react服务端渲染集成中的SBT配置问题

我尝试按照scalajs-react集成服务端渲染的指南实现功能,但因技术栈差异遇到阻碍。我的环境信息如下:

  • SBT版本:1.5.5
  • Scala版本:2.12.10

使用的SBT插件列表:

addSbtPlugin("com.typesafe.play"  % "sbt-plugin"                    % "2.7.4")
addSbtPlugin("org.scala-js"       % "sbt-scalajs"                   % "1.7.0")
addSbtPlugin("org.scala-js"       % "sbt-jsdependencies"            % "1.0.2")
addSbtPlugin("ch.epfl.scala"      % "sbt-scalajs-bundler"           % "0.20.0")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0")
addSbtPlugin("org.scala-native"   % "sbt-scala-native"              % "0.3.7")
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject"      % "1.2.0")
addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.2.0")

在指南的步骤2中,要求在build.sbt中添加以下配置:

val scalaGraalVer = "1.0.1"

lazy val webappSsr = crossProject("webapp-ssr")

lazy val webappSsrJs = webappSsr.js
  .dependsOn(myScalaJsWebapp) // change this to your real SJS module name(s)
  .settings(
    libraryDependencies ++= Seq(
      "com.github.japgolly.scala-graal" %%% "core-js"       % scalaGraalVer,
      "com.github.japgolly.scala-graal" %%% "ext-boopickle" % scalaGraalVer
    ),
    scalaJSLinkerConfig ~= { _.withSourceMap(false) },
    artifactPath in (Compile, fastOptJS) := (crossTarget.value / "webapp-ssr.js"),
    artifactPath in (Compile, fullOptJS) := (crossTarget.value / "webapp-ssr.js")
  )

lazy val webappSsrJvm = webappSsr.jvm
  .settings(
    libraryDependencies ++= Seq(
      "com.github.japgolly.scala-graal" %% "core"          % scalaGraalVer,
      "com.github.japgolly.scala-graal" %% "core-js"       % scalaGraalVer,
      "com.github.japgolly.scala-graal" %% "ext-boopickle" % scalaGraalVer
    ),
    unmanagedResources in Compile += Def.taskDyn {
      val stage = (scalaJSStage in Compile in webappSsrJs).value
      val task = stageKey(stage)
      Def.task((task in Compile in webappSsrJs).value.data)
    }.value)
  )

目前遇到两个问题:

  • crossProject不接受String类型参数,它的定义为def crossProject(platforms : sbtcrossproject.Platform*)
  • 代码中的stageKey函数未被识别,无法确定其来源及解决办法

内容的提问来源于stack exchange,提问作者jesus g_force Harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:05:18