問題タブ [scalajs-bundler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - ScalaJS Bundler でテストを実行中に ReferenceError に直面する
sbt-scalajs
0.6.xから1.2.0にアップグレードするときにこの問題に直面しています。問題は次のとおりです。
sbt-scalajs v0.6.26
(および) を使用して、テストsbt-scalajs-bundler v0.14.0
のサポートを有効にしました。jsdom
そして、テストスイートは正常に動作しています。
しかし、sbt-scalajs v1.2.0
(および) を使用して、テストsbt-scalajs-bundler v0.18.0
のサポートも有効にしました。jsdom
しかし、これは私に次のエラーを与えています:
ただし、requireJsDomEnv in Test := true
設定を削除すると、テスト スイートは正常に動作します。なぜこれが起こっているのかを理解する必要がありますか?どうすれば修正できますか?
私は使っている:
sbt - scala.js と sbt の ScalaJSBundler を使用してクライアント側の JavaScript ページを作成するにはどうすればよいですか?
私は scala.js を使用して、ブラウザーで実行される JavaScript コードを作成し、akka-http サーバーによって提供されます。ほとんどの場合、ビルド ツールとして mill を使用して動作していましたが、npm の依存関係とパッケージングに ScalaJSBundler プラグインを使用できるように、sbt に切り替えたいと考えました。sbt を使用して、scala.js コードをコンパイルするために fastOpt を実行すると、ミルが作成したものとはわずかに異なる JavaScript コードが作成され、次のような require ステートメントが含まれるようになりました (ミル ビルドには含まれていませんでした)。
このコードをブラウザで実行すると、require が未定義として表示されます。また、scala.js でエクスポートした変数は未定義として表示されます。これは、作成されたコードが ModuleKind.CommonJSModule (sbt 設定 scalaJSModuleKind を介して設定) 用であったためだと思いましたが、それを ModuleKind.ESModule に変更しようとすると、ビルドが次のように失敗します。
私はjavascript(およびscala.js)が初めてです。私は何を間違っていますか?これはどのように行うべきですか?
ありがとうございました!