私は scala-js フロントエンド フレームワークを書いています。その主な機能はサーバー側のレンダリングです。document.createElement
などでdom を操作するコンポーネントがあるという考えでしたelement.appendChild
。HTMLDocument
サーバーでは、などをサブクラス化し、Element
それらのメソッドをプレーン文字列 html に変換できるサーバー dom 実装でオーバーライドします。そこでscalajs-dom_sjs
、サーバーモジュールに依存関係を追加して、それをやろうとしました。しかしHTMLDocument
、Element
おそらく他のクラスには呼び出しがありますjs.native
「ライブラリのJVMバージョンを使用する」という例外をスローするコンストラクター内。これは明らかに存在しません。別の方法を使用して独自の dom ライブラリを実装することもできますが、サーバーとクライアントに実装する必要があるため、2 倍の作業が必要になりますが、最初のアプローチではサーバーに 1 回だけ実装します。
だから私の質問は: サーバーで scala-js ライブラリのバージョンを使用することが非常に厳密に禁止されているのはなぜですか?それを回避する方法はありますか?