0

私は scala.js を使用して、ブラウザーで実行される JavaScript コードを作成し、akka-http サーバーによって提供されます。ほとんどの場合、ビルド ツールとして mill を使用して動作していましたが、npm の依存関係とパッケージングに ScalaJSBundler プラグインを使用できるように、sbt に切り替えたいと考えました。sbt を使用して、scala.js コードをコンパイルするために fastOpt を実行すると、ミルが作成したものとはわずかに異なる JavaScript コードが作成され、次のような require ステートメントが含まれるようになりました (ミル ビルドには含まれていませんでした)。

var $i_react = require("react");

このコードをブラウザで実行すると、require が未定義として表示されます。また、scala.js でエクスポートした変数は未定義として表示されます。これは、作成されたコードが ModuleKind.CommonJSModule (sbt 設定 scalaJSModuleKind を介して設定) 用であったためだと思いましたが、それを ModuleKind.ESModule に変更しようとすると、ビルドが次のように失敗します。

scalaJSModuleKind must be set to ModuleKind.CommonJSModule in projects where ScalaJSBundler plugin is enabled

私はjavascript(およびscala.js)が初めてです。私は何を間違っていますか?これはどのように行うべきですか?

ありがとうございました!

4

1 に答える 1