我正在开发一个后端聊天服务器。它目前是用混乱的回调 javascript 编写的,所以我正在考虑将其移植到 scalajs。
我一直在浏览初学者指南,但我找不到如何将项目实际编译为可以使用节点运行的单个 JavaScript 文件(例如node ./target/scala_2.11/my-project.js
).
如何编译一个可以直接作为节点程序运行而不是在浏览器中运行的单个文件?
我的代码再简单不过了:
package example
import scala.scalajs.js
import js.Dynamic.{ global => g }
object ScalaJSExample extends js.JSApp {
def main(): Unit = {
g.console.log("*** Did something ***")
println("Trying to print something...")
}
}
sbt run
正确打印:
*** Did something ***
Trying to print something...
但当我跑步时sbt fullOptJS
进而node ./target/scala-2.11/example-opt.js
控制台上没有打印任何内容。
The example-opt.js
不包含实际使用的一行 JavaScriptlaunch代码。它仅定义example.ScalaJSExample().main()
作为一个函数,但它不call it.
让它自动调用该函数的一个简单方法是指示 sbt 将调用添加到.js
具有此 sbt 设置的文件:
scalaJSOutputWrapper := ("", "example.ScalaJSExample().main();")
这将允许您只调用
node ./target/scala-2.11/example-opt.js
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)