榆树的Hello World with console / Node

时间:2017-08-01 04:15:06

标签: javascript node.js elm

在Elm编写控制台应用程序时是否有一种简单,受支持的方式,理想情况是在Node中?如果是这样,“Hello,World”是什么样的?

我知道有一些软件包,其中大部分都没有明显维护,声称可以做这样的事情,但它们在某种程度上看起来都像kludges。

1 个答案:

答案 0 :(得分:2)

Elm是0.18的前端语言。它可能在将来是后端友好的。但现在不是。见here

但是,这并不意味着您无法将其与Node一起使用。你只需要使用" worker"模式并通过端口发送和发送所有数据。例如:

port module Main exposing (..)

import Platform

port getName : (String -> msg) -> Sub msg
port sendGreeting : String -> Cmd msg

type alias Model = {}

type Msg =
  GreetUser String

update msg model = 
  case msg of
    GreetUser name -> (model, sendGreeting name)

main = Platform.program 
  { init = ( {}, Cmd.none)
  , update = update
  , subscriptions = \model -> getName GreetUser
}

然后你可以通过elm-make Main.elm --output elm.js编译它,并在JS中这样需要它:

const Elm = require("./elm.js");
const app = Elm.Main.worker();

app.ports.sendGreeting.subscribe((greeting) => console.log(greeting));

app.ports.getName.send("Noah")

有很多应用程序可以执行此操作,例如:

  • 榆树-草图的进口商
  • 榆树 - 验证-实例
  • 榆树分析
  • 榆树熔丝