如何将现有的 Scala 库移植到 scalajs?
How do I port an existing Scala library to scalajs?
我是 Scala.js 的新手。我想使用 Argonaut json 库。
https://github.com/argonaut-io/argonaut
它唯一的依赖似乎是
Monocle 和 Scalaz 都有为 Scala.js 编译的版本。我很乐意将 Argonaut 移植到 Scala.js,但对如何开始还没有明确的想法。有人有什么指点吗?
谢谢。
快速概念验证
首先要尝试的是转换构建,以便 JVM 项目成为 Scala.js 项目。这个基础很简单:
在project/plugins.sbt
中添加对Scala.jssbt插件的依赖:
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.2")
在 build.sbt
或 project/Build.scala
中(或类似的,取决于给定项目使用的内容),通过添加以下内容将项目变成 Scala.js 项目:
.enablePlugins(ScalaJSPlugin)
他们的定义。对于它们的依赖项,将 %%
依赖项替换为 %%%
依赖项以依赖于 Scala.js 工件。
至此,代码可以编译了,大概可以用来写例子或者直接用在你的应用中。复杂的构建可能需要更多的工作。
如果您的应用程序一切正常,那么您已经成功地验证了该库可以移植到 Scala.js。
更进一步:交叉编译构建
好的,现在您已经有了一个快速的概念证明,即该库可以编译并在 Scala.js 上工作,您将需要进行适当的 交叉编译 构建而不是快速分叉。事实上,现在构建不再生成 JVM 工件。
为此,您需要将所有需要交叉编译的项目重新转换为crossProject
。为此,我推荐 cross-building documentation page 作为进一步文档的来源。
我是 Scala.js 的新手。我想使用 Argonaut json 库。
https://github.com/argonaut-io/argonaut
它唯一的依赖似乎是 Monocle 和 Scalaz 都有为 Scala.js 编译的版本。我很乐意将 Argonaut 移植到 Scala.js,但对如何开始还没有明确的想法。有人有什么指点吗?
谢谢。
快速概念验证
首先要尝试的是转换构建,以便 JVM 项目成为 Scala.js 项目。这个基础很简单:
在project/plugins.sbt
中添加对Scala.jssbt插件的依赖:
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.2")
在 build.sbt
或 project/Build.scala
中(或类似的,取决于给定项目使用的内容),通过添加以下内容将项目变成 Scala.js 项目:
.enablePlugins(ScalaJSPlugin)
他们的定义。对于它们的依赖项,将 %%
依赖项替换为 %%%
依赖项以依赖于 Scala.js 工件。
至此,代码可以编译了,大概可以用来写例子或者直接用在你的应用中。复杂的构建可能需要更多的工作。
如果您的应用程序一切正常,那么您已经成功地验证了该库可以移植到 Scala.js。
更进一步:交叉编译构建
好的,现在您已经有了一个快速的概念证明,即该库可以编译并在 Scala.js 上工作,您将需要进行适当的 交叉编译 构建而不是快速分叉。事实上,现在构建不再生成 JVM 工件。
为此,您需要将所有需要交叉编译的项目重新转换为crossProject
。为此,我推荐 cross-building documentation page 作为进一步文档的来源。