当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 你如何在nodejs中实际运行scalajs代码?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在开发一个后端聊天服务器.它目前写在凌乱的回调 JavaScript中,所以我正在考虑将其移植到scalajs. 我一直在查看初学者的指南,但是我找不到如何将项目实际编译为可以与节点一起运
我正在开发一个后端聊天服务器.它目前写在凌乱的回调 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运行正确打印:

*** Did something ***
Trying to print something...

但是当我运行sbt fullOptJS然后运行节点./target/scala-2.11/example-opt.js时,没有任何内容打印到控制台.

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

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

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

这将允许您只是调用

node ./target/scala-2.11/example-opt.js
网友评论