当shared中的类依赖于Scala.js中类的单独JVM和JS实现?
When classes in shared depend on separate JVM and JS implementations of classes in Scala.js?
请考虑一个交叉编译的 scala.js 库,它依赖于一个名为 Core 的 class。
核心需要单独的 JVM 和 JS 实现,因为它依赖于本机功能。
请记住,scala.js 的交叉编译目录结构包括一个仅用于 javascript 代码的 js 文件夹、一个用于仅 JVM 代码的 jvm 文件夹以及一个用于同时适用于这两种环境的代码的共享文件夹.
问题在于库的大部分占用了共享上下文,但依赖于核心 class。不幸的是,intelliJ 没有 link 从共享上下文中引用 Core,这阻碍了进展。
在其他情况下,我将方法签名抽象为特征并引用特征而不是实现 classes,但在这种情况下,共享代码直接调用大量构造函数和工厂。
是否有设计技巧或配置 intelliJ 的方法,以便共享代码可以引用特定的实现 classes?
我一直有依赖于跨项目共享模块的客户端和服务器模块。
这就是我尝试这样做的方式:
将核心 类 放入库(又一个交叉项目)。
然后你可以添加它的发行版作为依赖:
- jvm-Project 的 JVM 库
- js 项目的 JS 库
这在 Intellij 中应该也能正常工作。
请考虑一个交叉编译的 scala.js 库,它依赖于一个名为 Core 的 class。
核心需要单独的 JVM 和 JS 实现,因为它依赖于本机功能。
请记住,scala.js 的交叉编译目录结构包括一个仅用于 javascript 代码的 js 文件夹、一个用于仅 JVM 代码的 jvm 文件夹以及一个用于同时适用于这两种环境的代码的共享文件夹.
问题在于库的大部分占用了共享上下文,但依赖于核心 class。不幸的是,intelliJ 没有 link 从共享上下文中引用 Core,这阻碍了进展。
在其他情况下,我将方法签名抽象为特征并引用特征而不是实现 classes,但在这种情况下,共享代码直接调用大量构造函数和工厂。
是否有设计技巧或配置 intelliJ 的方法,以便共享代码可以引用特定的实现 classes?
我一直有依赖于跨项目共享模块的客户端和服务器模块。
这就是我尝试这样做的方式:
将核心 类 放入库(又一个交叉项目)。
然后你可以添加它的发行版作为依赖:
- jvm-Project 的 JVM 库
- js 项目的 JS 库
这在 Intellij 中应该也能正常工作。