当shared中的类依赖于Scala.js中的类的单独JVM和JS实现时?

时间:2018-04-20 15:50:35

标签: intellij-idea cross-platform scala.js

请考虑一个交叉编译的scala.js库,它依赖于一个名为Core的类。

Core需要单独的JVM和JS实现,因为它依赖于本机功能。

请记住,scala.js的交叉编译目录结构包括仅用于javascript代码的js文件夹,用于仅JVM代码的jvm文件夹,以及用于与这两种环境相关的代码的共享文件夹。

问题是库的大部分占用了共享上下文,但取决于Core类。不幸的是,intelliJ没有从共享上下文链接到Core的引用,这阻碍了进展。

在其他情况下,我将方法签名抽象为特征并引用特征而不是实现类,但在这种情况下,共享代码直接调用了许多构造函数和工厂。

是否有设计技巧或配置intelliJ的方法,以便共享代码可以引用特定于实现的类?

1 个答案:

答案 0 :(得分:0)

我总是依赖于Crossproject中的共享模块的客户端和服务器模块。

所以我会尝试这样做:

将核心类放入库(另一个跨项目)。

然后您可以将其分布添加为依赖项:

  • JVM lib到jvm-Project
  • JS lib to js-Project

这在Intellij中也应该可以正常工作。