使用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
}
答案 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)