如何将现有的Scala库移植到scalajs?

问题描述 投票:14回答:1

我是Scala.js的新手。我想使用Argonaut json库。

https://github.com/argonaut-io/argonaut

它唯一的依赖项似乎是Monocle和Scalaz,它们都有为Scala.js编译的版本。我很乐意将Argonaut移植到Scala.js,但对如何开始没有坚定的想法。有没有人有任何指针?

谢谢。

scala.js
1个回答
24
投票

快速概念验证

首先要尝试转换构建,以便JVM项目成为Scala.js项目。这个的基础很简单:

project/plugins.sbt中,将依赖项添加到Scala.js sbt插件:

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.2")

build.sbtproject/Build.scala(或类似的,取决于给定项目使用的内容),通过添加以下内容将项目转换为Scala.js项目:

.enablePlugins(ScalaJSPlugin)

他们的定义。对于它们的依赖项,用%%依赖项替换%%%依赖项以依赖于Scala.js工件。

此时,代码可以编译,并且可以用于编写示例或直接在您的应用程序中。复杂的构建可能需要更多工作。

如果您的应用程序中的一切正常,那么您已经成功地将这个库移植到Scala.js的概念验证。

更进一步:交叉编译构建

好了,现在您已经快速了解了库可以编译和使用Scala.js的概念,您需要进行正确的交叉编译构建而不是快速分叉。实际上,现在构建不再产生JVM工件了。

为此,您需要将需要交叉编译的所有项目重新转换为crossProjects。为此,我建议使用cross-building documentation page作为进一步文档的来源。

© www.soinside.com 2019 - 2024. All rights reserved.