Le titre est réécrit comme suit : « Intégration du rendu côté serveur avec scalajs-react » est traduit en chinois par « Intégration de scalajs-react avec le rendu côté serveur »
P粉155551728
P粉155551728 2023-08-30 10:58:29
0
1
538
<p>J'ai essayé de suivre le guide d'intégration du rendu côté serveur dans scalajs-react, mais ma pile est peut-être un peu différente, donc ce n'est pas si intuitif.</p> <p>我正在使用<code>SBT 1.5.5</code>,<code>scala 2.12.10</code> <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-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")</pre> <p>在文章的<strong>第2步</strong>中,它说要将以下内容添加到'build.sbt'文件中:</p> <pre class="brush:php;toolbar:false;">val scalaGraalVer = "1.0.1" paresseux val webappSsr = crossProject("webapp-ssr") val paresseux webappSsrJs = webappSsr.js .dependsOn(myScalaJsWebapp) // Téléchargement de fichiers SJS .paramètres( bibliothèqueDépendances ++= Seq( "com.github.japgolly.scala-graal" %%% "core-js" % scalaGraalVer, "com.github.japgolly.scala-graal" %%% "ext-boopickle" % scalaGraalVer ), scalaJSLinkerConfig ~= { _.withSourceMap(false) }, artefactPath dans (Compile, fastOptJS) := (crossTarget.value / "webapp-ssr.js"), artefactPath dans (Compile, fullOptJS) := (crossTarget.value / "webapp-ssr.js") ) val paresseux webappSsrJvm = webappSsr.jvm .paramètres( bibliothèqueDépendances ++= Seq( "com.github.japgolly.scala-graal" %% "noyau" % scalaGraalVer, "com.github.japgolly.scala-graal" %% "core-js" % scalaGraalVer, "com.github.japgolly.scala-graal" %% "ext-boopickle" % scalaGraalVer ), unmanagedResources dans Compile += Def.taskDyn { val stage = (scalaJSStage dans Compile dans webappSsrJs).value tâche val = stageKey (étape) Def.task((tâche de compilation dans webappSsrJs).value.data) }.valeur) )</pré> <p>所以我目前在这里有2个问题:</p> <ol> <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> </ol></p>
P粉155551728
P粉155551728

répondre à tous(1)
P粉378890106

Comme @tdimoff déjà dit, crossProject方法不接受字符串参数,所以这行代码lazy val webappSsr = crossProject("webapp-ssr")应该替换为lazy val webappSsr = crossProject(JSPlatform, JVMPlatform) pour la bibliothèque sbtcrossproject.

Concernant la fonction stageKey, elle semble faire partie de la bibliothèque scalajs-bundler, vous devez donc ajouter la dépendance de bibliothèque suivante :

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

Cela devrait vous permettre d'utiliser la fonction stageKey.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal