У меня очень простой локальный модуль, экспортирующий класс.Я хотел бы использовать этот модуль локально, используя ProvidedJS
.Независимо от того, что я пробовал, каждый раз, когда я выполняю run
или test
в sbt, компилятор жалуется, что на этапе fastOptJS
он не может найти модуль.
Я убедился, что файл Javascript включен вфайл jsdeps.js
, но независимо от того, что я пытался записать в @JSImport
, я всегда получаю сообщение об ошибке «Не удается найти модуль».
MyTypes.js:
var MyType = function (x, y) {
this.x = x;
this.y = y;
};
MyType.prototype.constructor = MyType;
exports.MyType = MyType;
build.sbt:
name := "JSEquals"
version := "0.1"
scalaVersion := "2.11.12"
enablePlugins(ScalaJSPlugin)
jsDependencies += ProvidedJS / "MyTypes.js"
scalaJSUseMainModuleInitializer := true
skip in packageJSDependencies := false
//jsEnv in Compile := new org.scalajs.jsenv.nodejs.NodeJSEnv(org.scalajs.jsenv.nodejs.NodeJSEnv.Config().withArgs(List("--inspect-brk")))
scalaJSModuleKind in Compile := ModuleKind.CommonJSModule
MyApp.scala:
import scala.scalajs.js
import scala.scalajs.js.annotation._
@js.native
@JSImport("./MyTypes.js", "MyType")
class MyType(var x: Double, var y: Double) extends js.Any
object MyApp {
@JSExport
def main(args: Array[String]): Unit = {
val my = new MyType(0, 0)
println(s"my $my")
}
}
Готов к использованию проект доступен на GitHub в филиале minimalModule
.
Что я должен написать в @JSImport
, чтобы использовать модуль MyTypes
?