代码之家  ›  专栏  ›  技术社区  ›  jokade

Scala列表。js类实际上链接到fastOpt。js/fullOpt.js?

  •  0
  • jokade  · 技术社区  · 8 年前

    我正在编写一个sbt插件,它从特定的StaticAnnotation类型创建一个JS文件;我宁愿只在fastOptJS/fullOptJS实际链接的类上发出注释,而不是包含类路径上找到的所有注释。我可以利用Scala吗。js链接器工具还是sbt插件?

    1 回复  |  直到 8 年前
        1
  •  0
  •   sjrd    8 年前

    是的,你可以。Scala。js Tools API(链接器工具)提供一种名为 Analysis 里面有你需要的一切。

    您可以构造一个 分析 具有 Analyzer.computeReachability .你必须给它合适的 ClassInfo 类路径上的.sjsir文件。

    这是在年完成的 the callgraph sbt plugin 尽管仍在开发中,但它显示了如何构建 分析 对于sbt项目: https://github.com/lionelfleury/scala-js-call-graph/blob/065506bf9a9c12ccc54fed056fed878e6f18b328/sbt-scalajs-callgraph/src/main/scala/ch/epfl/sbtplugin/CallGraphPlugin.scala#L28-L49

    此特定实现选择 分析 之后 已执行优化(除非程序未链接,否则返回分析 之前 执行优化)。根据您的用例,您可能会选择其中一种,但您更可能需要该版本 之后 优化。

    一旦你有了 分析 ,您可以简单地列出它的 classInfo 成员,并筛选出其中的成员 .isNeededAtAll 为false。同样,根据您的情况,您希望使用更精细的测试,例如 .isAnySubclassInstantiated .