你如何在nodejs中实际运行scalajs代码?

时间:2016-01-13 09:37:52

标签: node.js scala.js

我正在开发一个后端聊天服务器。它目前用凌乱的回调javascript编写,所以我考虑将它移植到scalajs。

我一直在查看初学者的指南,但我无法找到如何将项目实际编译为单个javascript文件,我可以使用节点运行(例如{{1} })。

如何编译可以作为节点程序直接运行的单个文件,而不是在浏览器中?

我的代码不简单:

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时,没有任何内容打印到控制台。

1 个答案:

答案 0 :(得分:7)

example-opt.js不包含用于实际启动代码的一行JavaScript。它只将example.ScalaJSExample().main()定义为函数,但它不会调用它。

让它自动调用该函数的一种简单方法是指示sbt使用此sbt设置在.js文件的末尾添加调用:

scalaJSOutputWrapper := ("", "example.ScalaJSExample().main();")

这将允许您只需调用

node ./target/scala-2.11/example-opt.js