使用榆木反应堆时是否可以显示榆木的调试器?

时间:2019-01-09 04:08:52

标签: debugging elm

使用elm reactor时,它的效果很好,但似乎没有提供一种显示调试器的方法,以便在每次更新后明确查看模型的状态。

elm reactor --debug不起作用,我在UI中看不到选项,也没有看到the documentation中提到的选项。

使用elm reactor时我们可以看到调试器吗?


这是在Reactor中运行但不显示调试器的代码示例(使用Elm 0.19时)

module Main exposing (main)

import Browser
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)


type alias Model =
    { count : Int }


initialModel : Model
initialModel =
    { count = 0 }


type Msg
    = Increment
    | Decrement


update : Msg -> Model -> Model
update msg model =
    case msg of
        Increment ->
            { model | count = model.count + 1 }

        Decrement ->
            { model | count = model.count - 1 }


view : Model -> Html Msg
view model =
    div []
        [ button [ onClick Increment ] [ text "+1" ]
        , div [] [ text <| String.fromInt model.count ]
        , button [ onClick Decrement ] [ text "-1" ]
        ]


main : Program () Model Msg
main =
    Browser.sandbox
        { init = initialModel
        , view = view
        , update = update
        }

2 个答案:

答案 0 :(得分:4)

0.19中的elm reactor不再包含调试器。显然在重构时已将其删除(尽管将来可能会重新添加)。

就目前而言,我建议使用也支持自动重新加载的elm-live

答案 1 :(得分:1)

是的,不再有elm reactor --debug。但是,您仍会在常规--debug上找到elm make。因此,如果您的文件为src/Main.elm,则可以执行以下操作:

$ elm make src/Main.html --debug
Success!

    Main ───> index.html

index.html是在设置--debug标志的情况下生成的。在elm make的帮助下,这意味着

--debug
    Turn on the time-travelling debugger. It allows you to rewind and replay
    events. The events can be imported/exported into a file, which makes for
    very precise bug reports!

将它放在elm reactor中真是太好了,但是您仍然有一个index.html可以在浏览器中“打开”。我用双引号引起来,因为如果您通过单击将其打开,将看不到期望的内容。您希望通过以下方法正确地打开它:从终端“服务”它,然后在浏览器中打开它的链接,就像使用elm reactor一样。如今,大多数系统都安装了某些版本的python,因此您可以利用python命令通过该命令为index.html文件提供“服务”

$ python3 -m http.server 8000

如果您只有python 2.x,则该命令应为:

$ python –m SimpleHTTPServer 8000

当然,您可以随意以其他任何方式来提供它。您也可以使用elm reactor来投放index.html。在elm reactor打开的主窗口中,找到生成的index.html的链接,然后单击它,而不是src/Main.elm。我建议不要使用它,因为它可能会造成混淆。现在,您可能不确定要查看的是主src/Main.elm文件还是生成的index.html

对于elm-live,是不错的选择,您可以将--debug选项作为 elm make选项

$ elm-live src/Main.elm -- --debug

请注意--之前的--debug,因为它标志着elm-live elm make options 的开始。

如果没有其他要求,希望可以澄清在哪里可以找到和使用--debug。干杯。

(Elm 0.19.1)