Есть ли простой, поддерживаемый способ в Elm приложений для консольных приложений, в идеале в узле? Если да, то как выглядит "Hello, World"?
Я знаю, что есть некоторые пакеты, большинство из которых, по-видимому, не поддерживаются, которые хотят сделать что-то подобное, но все они в какой-то степени похожи на клоды.
Elm - это интерфейс только для интерфейса с 0,18. В будущем это может быть дружественным. Но разве это не сейчас. См. Здесь
Однако это не означает, что вы не можете использовать его с узлом. Вам просто нужно использовать "рабочий" режим и отправлять все свои данные через порты. Например:
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")
Это много приложений, таких как: