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

2024-01-12

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

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

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

Thanks.


快速概念验证

首先要尝试的是转换构建,以便 JVM 项目成为 Scala.js 项目。其基础非常简单:

In project/plugins.sbt,添加对 Scala.js sbt 插件的依赖:

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

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

.enablePlugins(ScalaJSPlugin)

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

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

如果您的应用程序中一切正常,那么您就已经成功地证明了该库可以移植到 Scala.js。

更进一步:交叉编译构建

好的,现在您已经有了一个快速的概念证明,该库可以在 Scala.js 上编译和工作,您将需要制作一个合适的交叉编译构建而不是快速分叉。事实上,现在构建不再产生 JVM 工件。

为此,您需要将所有需要交叉编译的项目重新转换为crossProjects。为此,我推荐跨建筑文档页面 http://www.scala-js.org/doc/sbt/cross-building.html作为进一步文档的来源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将现有的 Scala 库移植到 scalajs? 的相关文章

  • 如何在使用 Binding.scala 将元素加载到 dom 后执行一些 init

    dom def chart show Var Boolean if show bind
  • 无法让 uTest 查看我的测试

    我正在尝试让 uTest 与 ScalaJS 和 SBT 一起使用 SBT 正在编译文件 uTest 正在运行 但它只是忽略我的测试 尽我所能 我找不到我的代码和教程示例之间的任何区别 构建 sbt enablePlugins ScalaJ
  • Binding.scala:避免过多 dom 树更新的策略

    在我的项目中scala 适配器我显示通过网络套接字发送的日志条目 由于我无法控制发送的条目数量 因此我正在寻找一种策略来避免屏幕冻结 我创建了一个 ScalaFiddle 来模拟 https scalafiddle io sf kzr28t
  • 如何读取Scala.js中的资源文件?

    假设我有一个map csv文件位于同一级别 或其他一些 web 应用程序可访问的位置 index dev opt html e g key1 value1 key2 value2 keyN valueN 我想读取该 CSV 文件并最终得到一
  • 使用 scalajs 创建自定义 DOM 事件

    我找不到使用 scala js 创建自定义事件的方法 例如 使用 js 您可以创建如下所示的自定义事件 摘自此处 var event new CustomEvent build detail elem dataset time 但是 没有构
  • 调整大小之前传单地图无法正确显示

    我在 Binding scala 上使用带有 scalajs leaflet 外观的 Leaflet 并且地图初始化 显示不正确 为了重现这个问题 我准备了一个lihaoyi workbench页面类似于 scalajs leaflet 中
  • scala.js 与 jscala 有什么区别?

    有两个工具可以直接在 JavaScript 中编译 Scala 代码 Scala js http www scala js org and JScala https github com nau jscala 它们看起来都很棒 并且可以使用
  • 使用不透明类型(Char 和 Long)

    我正在尝试导出算法的 Scala 实现以在 JavaScript 中使用 我在用着 JSExport 该算法适用于 ScalaChar and Long值被标记为opaque in the 互操作性指南 http www scala js
  • 如何使用 scala.js 读取文本文件?

    基本上我想弄清楚我需要传递什么onload method def selectedFile e ReactEventI val reader new dom FileReader reader readAsText e currentTar
  • 如何导出共享案例类的属性

    我正在尝试在服务器和客户端之间共享案例类 我在两端都使用了 upickle 对象及其数据在两端都可以很好地使用 共享类 case class Foo var id Long var title Description 但是我需要在客户端导出
  • DOM 更新过多

    链接 https ccamel github io playground binding scala index html playground binding scala home https ccamel github io playg
  • 如何将现有的 Scala 库移植到 scalajs?

    我是 Scala js 新手 我想使用 Argonaut json 库 https github com argonaut io argonaut https github com argonaut io argonaut 它唯一的依赖项似
  • JSweet 能否有效地移植 Java 库以在交叉构建的 Scala.js 项目中使用?

    寻找使 Java 库可供 Scala js 的 JavaScript 和 JVM 端访问的方法交叉构建 https www scala js org doc project cross build html项目 请考虑以下实验 想象一下 S
  • 从 SJSIR “手动”构建 JS

    我需要在运行时从 sjsir 文件构建一个 js 文件来实现插件系统 这样就无法在编译时与我的其余编译一起完成 我曾经在 0 6 3 中使用以下代码实现相同的过程 但它似乎已被弃用 您建议使用什么算法来实现与 0 6 13 相同的操作 谢谢
  • 为 JavaScript 模块编写 scalajs Facade 时如何使用 JSImport

    我使用 JSImport 编写了一个外观 并且它有效 不幸的是 我通过反复试验找到了解决方案 并且我不完全理解为什么这个特定的解决方案有效 但我尝试过的其他解决方案却无效 背景 我从一个使用 sbt 构建的工作项目开始 它是一个单页应用程序
  • 如何从传递到 scalatags 的事件处理程序访问“this”元素?

    我正在尝试访问当前的文本 this 元素来自使用 scalatags 创建的事件处理程序 这是我尝试过的 val onChange e HTMLElement gt number e textContent toInt js ThisFun
  • 如何在 Nodejs 中实际运行 scalajs 代码?

    我正在开发一个后端聊天服务器 它目前是用混乱的回调 javascript 编写的 所以我正在考虑将其移植到 scalajs 我一直在浏览初学者指南 但我找不到如何将项目实际编译为可以使用节点运行的单个 JavaScript 文件 例如nod
  • scala-js 如何与 sbt-web 集成?

    我想用scala js https github com scala js scala js with sbt web https github com sbt sbt web以这样的方式 它可以被编译以生成添加到资产管道中的 JavaSc
  • 为什么不重新评估 Binding.scala 路由器?

    我正在尝试通过 Binding scala 为个人项目构建通用路由器 我定义了一个PageState trait sealed trait WhistState def text String def hash String def ren
  • 用于真实 Web 项目的 Scala-JS [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人用过吗Scala JS在真实的网络项目中 但不仅仅适用于普通的JavaScript在隔离环境中替换 我想尽可能多地使用 Scala 我希望可

随机推荐

  • slim 动态条件类 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 只是为了帮助其他开发人员 因为 SO 上没有类似的问题 div class is active active inactive div cl
  • Object.ReferenceEquals 为两个不同的对象打印 true

    下面的代码是如何打印的true string x new string new char 0 string y new string new char 0 Console WriteLine object ReferenceEquals x
  • 将 mysql“创建表”翻译为 postgresql

    我正在尝试将 创建表 从 mySQL 翻译为 postgreSQL mySQL CREATE TABLE IF NOT EXISTS pets id INT 4 UNSIGNED NOT NULL AUTO INCREMENT PRIMAR
  • Hector 是否提供 API 来支持复合密钥?

    现在 我必须通过将子项格式化在一起来手动生成复合键 它很丑陋而且效率低下 我想知道 Hector 是否提供了这样一组 API 来以更体面的方式处理复合键 是的 它确实 您可以查看 DynamicCompositeTest 的示例 https
  • 让鼠标穿过Windows Flutter

    I am working on a Flutter Desktop screen Annotation Application where I want to ignore the mouse events and let is pass
  • makefile 中前缀 @- 是什么意思?

    前缀是什么意思 在 makefile 中是什么意思 与使用有什么区别 没有 例如 在以下情况下 ifndef NO CBLAS echo Generating cblas h in DESTDIR OPENBLAS INCLUDE DIR
  • Java 中对 MacOS X 的本机 Swing 菜单栏支持

    一个突出的链接是http www devdaily com blog post jfc swing handling main mac menu in swing application http www devdaily com blog
  • 检测Android设备是否有互联网连接

    我需要判断我的设备是否有互联网连接 我找到了很多答案 例如 private boolean isNetworkAvailable ConnectivityManager connectivityManager ConnectivityMan
  • 如何修复过时的 git 分支 -r (删除幻影 git 分支)?

    git branch develop feature bug 76 master git branch r origin HEAD gt origin master origin develop origin feature impleme
  • 显示 StackView 页面时 Qt QML 聚焦项目(TextField)

    我想启用TextField加载 QML 文件时聚焦 但是 它不起作用 加载 TestUi qml 文件后 我放置了一些按钮及其onClick 我做的方法 recipientView focus true 效果很好 问题是第一次加载视图时未启
  • 如何递归枚举对象的属性?

    出于性能原因 我已开始重写 VMware 每日报告 尽可能使用 Get View 而不是相关的 PowerCLI 命令 这样做的一个小不便是 返回的视图对象通常具有许多属性 其中许多属性本身就是对象 某些属性嵌套四层或更多层 因此 我尝试创
  • 如何知道移动设备是否显示桌面?

    我见过很多问题 https stackoverflow com a 3540295 1408137询问如何检测设备是否是移动设备 一般来说 它们分为三类 检查屏幕尺寸 视口 检查用户代理 使用库 例如现代化 http modernizr c
  • 如何在 Visual Studio 2019 中更新我的 IntelliCode 模型?

    我从各种解决方案中创建了一些模型 但我想知道如何更新它们以利用这些解决方案中代码的更改 或者这会自动发生吗 我可以删除并重新创建模型 但这似乎有点矫枉过正 您不必删除模型 只需重新训练它即可 截至撰写本文时 刷新模型的方式是 打开您想要刷新
  • 业务审计日志 - 推荐的库或方法? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你知道有什么好的 Java 审计日志库吗 或者至少有一本好书 文章可以帮助选择为应用程序构建审核日志的
  • 获取哈希映射中的前 10 个值

    我想弄清楚如何从 中获取前 10 个值HashMap 我最初尝试使用TreeMap并让它按值排序 然后取前 10 个值 但似乎这不是选择 因为TreeMap按键排序 我仍然希望能够知道哪些键具有最高值 K V地图的String Intege
  • 使用 AVFoundation 在视频之间快速切换

    我正在编写一个应用程序 用户可以在其中录制最多 6 个视频剪辑 每个视频剪辑的持续时间为 2 秒 录制视频剪辑后 用户可以使用 6 个按钮播放它们 每个剪辑一个 然后 用户可以通过在 6 个剪辑之间切换来录制电影 问题是 当用户按下按钮时
  • Vue.js - 每组仅单击一个按钮即可生成动态按钮

    我在一个网站上有五个问题 每个问题有 4 个答案 每个问题只能点击一个按钮 我怎样才能做到这一点 new Vue el app data answers currentQuestion examples A Lack zum Lackier
  • bitfinex api v2 错误,密钥无效

    我正在尝试对其新的 v2 api 进行基本的经过身份验证的 api 调用 并返回无效的 api 密钥错误 我重新发出 api 密钥只是为了验证 同样的错误 from time import time import urllib reques
  • iphone - 如何在没有 UIToolBar 的情况下使用 UIBarButtonItem 样式

    我可以在我的视图中显示黑色风格的 UIBarButtonItem 而没有下面的 UIToolBar 吗 UIToolBar 总是有一种边框 我希望系统 UIBarButtonItem 为黑色 就像黑色标准取消按钮一样 但不是 UIToolB
  • 如何将现有的 Scala 库移植到 scalajs?

    我是 Scala js 新手 我想使用 Argonaut json 库 https github com argonaut io argonaut https github com argonaut io argonaut 它唯一的依赖项似