問題タブ [kotlin-js-interop]
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.
javascript - JavaScriptでエクスポートされたクラスをKotlin/JSに変換するには?
私は JS と Kotlin/JS が初めてです。例から、Obsidianのプラグイン用の次の最小限の作業 Javascript コードがあります。期待どおりに動作します:
私は言語を知っているので、Kotlin を使用してこのプラグインを拡張したいと考えていましたが、これを Kotlin/JS に変換する際に問題が発生しました。これまでの私のアプローチ:
実行可能なプロジェクトは、こちらの Github にあります。を実行gradle build
して、ビルド フォルダーを生成します。ブラウザーのステップで失敗しますが、そのステップは必要ありません。ビルド後、生成された js ファイルはbuild\js\packages\main\kotlin\main.js
.
main.kt
編集:@S.Janssenのコメントのおかげで、モジュールタイプをumdに切り替えました
build.gradle.kts
で実行できる結果は実際には必要ありませんがbrowser
、定義がなければbrowser
、js ファイルも生成されません。そのbrowser
部分では、と言って例外がスローされますCan't resolve 'obsidian' in 'path\kotlin'
。ただし、少なくとも .js ファイルは の下に作成されbuild/js/packages/test/kotlin/test.js
ます。しかし、コードは私の期待したコードとは完全に異なっており、有効なプラグイン コードとしてオブシディアンに受け入れられていません。他のいくつかのgradleオプションも試しました。「umd」、「amd」、「plain」、IR の代わりのレガシー コンパイラ、ブラウザの代わりの nodejs など。しかし、実行可能な js ファイルを作成するものは何もありません。エラー メッセージが異なります。従来のコンパイラでは、kotlin.js ファイルが必要であり、フォルダのすぐ隣に配置したり、コンテンツをスクリプトにコピーしたりしても、見つけることができません。
上記の Javascript コードと機能的に似たコードを取得するにはどうすればよいですか? オーバーヘッドがあることは理解していますが、現在生成されているコードは、私の理解ではクラスを定義またはエクスポートすることさえありません。
obisidan デバッガーから表示されるエラー メッセージ:
生成されたコード: