제목은 다음과 같이 다시 작성됩니다. "scalaj-react와 서버 측 렌더링 통합"은 중국어로 "서버 측 렌더링과 scalajs-react 통합"으로 번역됩니다.
P粉155551728
P粉155551728 2023-08-30 10:58:29
0
1
542
<p>scalaj-react에 서버 측 렌더링을 통합하기 위한 가이드를 따르려고 노력했지만 스택이 약간 다를 수 있으므로 그다지 직관적이지 않습니다.</p> <p>내가정재使사용<code>SBT 1.5.5</code>,<code>scala 2.12.10</code>以及以下关插件:</p> <pre class="brush:php;toolbar:false;">addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.7.4") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.7.0") addSbtPlugin("org.scala-js" % "sbt-jsdependent" % "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")</pre> <p>현재<strong>제2조</strong>中,它说要将以下内容添加到'build.sbt'文件中:</p> <pre class="brush:php;toolbar:false;">val scalaGraalVer = "1.0.1" 게으른 값 webappSsr = crossProject("webapp-ssr") 게으른 값 webappSsrJs = webappSsr.js .dependentOn(myScalaJsWebapp) // SJS模块명칭 .설정( libraryDependency ++= Seq( "com.github.japgolly.scala-graal" %%% "core-js" % 스칼라GraalVer, "com.github.japgolly.scala-graal" %%% "ext-boopickle" % 스칼라GraalVer ), scalaJSLinkerConfig ~= { _.withSourceMap(false) }, (컴파일, fastOptJS)의 이슈 경로 := (crossTarget.value / "webapp-ssr.js"), (컴파일, fullOptJS)의 이슈 경로 := (crossTarget.value / "webapp-ssr.js") ) 게으른 값 webappSsrJvm = webappSsr.jvm .설정( libraryDependency ++= Seq( "com.github.japgolly.scala-graal" %% "코어" % 스칼라GraalVer, "com.github.japgolly.scala-graal" %% "core-js" % 스칼라GraalVer, "com.github.japgolly.scala-graal" %% "ext-boopickle" % 스칼라GraalVer ), 컴파일의 unmanagedResources += Def.taskDyn { val stage = (webappSsrJs 컴파일의 scalaJSStage).value Val 작업 = stageKey(단계) Def.task((webappSsrJs의 컴파일 작업).value.data) }.값) )</pre> <p>所以我目前에는 2个问题:</p> <올> <li><p><code>crossProject</code>似乎不接受<code>String</code>작화参数,即:</p> <p><code>def crossProject(平台:sbtcrossproject.Platform*)</code></p> </li> <li><p>재<code>val task = stageKey(stage)</code>处 - <code>stageKey</code>不是一个被识别的函数。我在网上搜索过,但无法弄清楚它的位置,因此不知道我缺少什么或是否有其他方法。</p> </li>

P粉155551728
P粉155551728

모든 응답(1)
P粉378890106

@tdimoff 가 이미 말했듯이 crossProject方法不接受字符串参数,所以这行代码lazy val webappSsr = crossProject("webapp-ssr")应该替换为lazy val webappSsr = crossProject(JSPlatform, JVMPlatform) sbtcrossproject 라이브러리에 대한 것입니다.

stageKey 함수와 관련하여 이는 scalajs-bundler 라이브러리의 일부인 것으로 보이므로 다음 라이브러리 종속성을 추가해야 합니다.

libraryDependencies += "ch.epfl.scala" % "scalajs-bundler" % "0.20.0"

이렇게 하면 stageKey 기능을 사용할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿