タイトルは次のように書き換えられます。「サーバーサイド レンダリングと scalajs-react の統合」は中国語に翻訳され、「scalajs-react とサーバーサイド レンダリングの統合」となります。
P粉155551728
P粉155551728 2023-08-30 10:58:29
0
1
541
<p>サーバー側レンダリングを scalajs-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-jsdependency" % "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>文章第 2 行の「build.sbt」文に以下の内容を追加する必要があります。 <pre class="brush:php;toolbar:false;">val scalaGraalVer = "1.0.1" 遅延 val webappSsr =crossProject("webapp-ssr") 遅延 val webappSsrJs = webappSsr.js .dependsOn(myScalaJsWebapp) // ここを真正の SJS モジュール名に変更します 。設定( libraryDependency = Seq( 「com.github.japgolly.scala-graal」 %%% "コア-js" % scalaGraalVer, 「com.github.japgolly.scala-graal」 %%% "ext-boopickle" % スカラグラールVer )、 scalaJSLinkerConfig ~= { _.withSourceMap(false) }、 artifactPath in (コンパイル、fastOptJS) := (crossTarget.value / "webapp-ssr.js")、 artifactPath (コンパイル、fullOptJS) := (crossTarget.value / "webapp-ssr.js") ) 遅延 val webappSsrJvm = webappSsr.jvm 。設定( libraryDependency = 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 = Def.taskDyn { val stage = (webappSsrJs でのコンパイルでの scalaJSStage).value val タスク = stageKey(ステージ) Def.task((webappSsrJs のコンパイルのタスク).value.data) }。価値) )</pre> <p>それでは現在 2 つの質問があります: </p> <ol> <li><p><code>crossProject</code> は、<code>String</code> をパラメータとして受け入れないようです。つまり、</p> <p><code>defcrossProject(プラットフォーム: sbtcrossproject.Platform*)</code></p> </li> <li><p>At <code>val task = stageKey(stage)</code> - <code>stageKey</code> は認識される関数ではありません。オンラインで検索しましたが、場所がわからないので、何が足りないのか、それとも別の方法があるのか​​わかりません。 </p> </li> </ol></p>
P粉155551728
P粉155551728

全員に返信(1)
P粉378890106

@tdimoff がすでに述べたように、sbtcrossproject ライブラリの crossProject メソッドは文字列パラメータを受け入れないため、このコード行 lazy val webappSsr =crossProject(" webapp -ssr")lazy val webappSsr =crossProject(JSPlatform, JVMPlatform) に置き換える必要があります。

stageKey 関数に関しては、scalajs-bundler ライブラリの一部であると思われるため、次のライブラリの依存関係を追加する必要があります。

libraryDependency = "ch.epfl.scala" % "scalajs-bundler" % "0.20.0"

これにより、

stageKey 関数が使用できるようになります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート