特定のStaticAnnotationタイプからJSファイルを作成するsbtプラグインを作成しています。クラスパスにあるすべての注釈を含めるのではなく、実際にfastOptJS/fullOptJSによってリンクされたクラスのアノテーションのみを出力する方が好きです。この目的のために、Scala.jsリンカツールやsbtプラグインを活用できますか?実際にfastOpt.js/fullOpt.jsにリンクされているScala.jsクラスのリスト?
0
A
答えて
0
はい、できます。 Scala.jsツールAPI(リンカツール)には、必要なものがすべて含まれているAnalysis
というデータ型が用意されています。
Analysis
はAnalyzer.computeReachability
で構成できます。あなたのクラスパス上の.sjsirファイルのために適切なClassInfo
を与えなければなりません。
まだ開発中、SBTプロジェクトのAnalysis
を構築する方法を示していますが、これは、the callgraph sbt pluginで行われています https://github.com/lionelfleury/scala-js-call-graph/blob/065506bf9a9c12ccc54fed056fed878e6f18b328/sbt-scalajs-callgraph/src/main/scala/ch/epfl/sbtplugin/CallGraphPlugin.scala#L28-L49
最適化は(しない限り、実行された後に、この特定の実装がAnalysis
を選択プログラムはリンクしません。この場合、の最適化が実行される前に、解析に戻ります)。ユースケースによってはどちらか一方のほうが好きかもしれませんが、の最適化の後にバージョンを追加した方がよいでしょう。
Analysis
を取得したら、classInfo
のメンバーを一覧表示し、.isNeededAtAll
がfalseのメンバーを除外できます。また、場合によっては、より洗練されたテストを使用したいと考えています(.isAnySubclassInstantiated
など)。
関連する問題
- 1. JavaScript配列は実際にリンクされたリストですか?
- 2. リンクされたリストのリストによるチェーンメソッドの実装
- 3. リンクされたリスト、クラス構造体?
- 4. リンクされたリストの追加が最後に実行されない
- 5. C:リンクされたリストを反転する際の問題
- 6. 実際のウェブサイトをgithubにリンクする
- 7. 実際に渡されたクラスの型のクラスのみと一致する(MyClass.class)
- 8. リンクされたリストのクラスが機能しない
- 9. __repr__は、リンクされたリストのPythonで実装されています
- 10. JAXBContextリゾルバクラスの実装:どのクラスがリストに格納されていますか?
- 11. リストを使ってリンクされたリスト
- 12. コンパイルプロセスのリンクは実際に何をしていますか?
- 13. 何__lt__が実際にリスト
- 14. リンクされたリストでキューを実装する、私のNodeクラスに関連するエラーを取得する
- 15. リンクされたリストのトラブルリストがヘッドポインタにリンクしていません
- 16. "ClassNotFoundException:android.support.v7.widget.GridLayout"実際にインポートされても、
- 17. リンクは実際のウェブサイトではなくローカルホストでリダイレクトされています
- 18. 実際の基本クラスにアップキャストする
- 19. C++のテキストエディタにリンクされたリスト
- 20. 辞書の値にリンクされたリスト
- 21. キューにリンクされたリストのフロントメソッド
- 22. Pythonのキューにリンクされたリスト
- 23. 私のプログラムは実際にリンクされているライブラリに依存していますが、ライブラリからの関数は使用されていませんか?
- 24. リスト私は(実際にインデックス位置)番号のリストを持っている
- 25. リンクされたリスト
- 26. リストは<T>にリンクされていますか?
- 27. HTMLクラスが内部CSSにリンクされていません
- 28. Haskell - ビルトイン型としてのタプルとリスト:実際に宣言されているのはどうですか?
- 29. Node.jsクラスタリング - フォーク、実際に使用されているメモリ量は?
- 30. 実際のデバイスで実行されているアプリケーション用のLogcat
詳細な説明をいただきありがとうございます。しかし、1つの質問:sbt.Loggerからcore.tools.logging.Loggerを取得するにはどうすればよいですか? – jokade
このように:https://github.com/scala-js/scala-js/blob/master/sbt-plugin/src/main/scala/scala/scalajs/sbtplugin/Implicits.scala(ただし、今私は見るそれはおそらくそれらのことを暗黙的に公開するべきではありません^^) – sjrd