Windows IEx:何时使用--werl标志

时间:2017-02-14 02:34:14

标签: elixir

尝试使用IEx.pry调试项目时,我发现需要使用--werl标志。我会将任何有潜在解决方案的人推荐给:

Should --werl be made default?

我当前的项目有多个模块,并使用Plug.Router。我意识到在这种情况下,prying可能不是最好的调试技术。仍然...

我很想学习如何使用pry进行调试,因此我测试了一个与this solution非常相似的简单案例。简而言之,从进程环境中撬开变量需要在编译期间运行IEx shell。这适用于单个模块,如上面链接的示例;但是,我当前的项目要求我mix项目目录。纠正我,也许有一种冗长的方法来编译和运行erlang控制台中的项目目录?无论如何,mix run --no-haltiex -S mix run都不适用于Windows(后者请求--werl标志)。

然后我尝试了一个更简单的项目,它没有使用Plug,只有一个模块,一个递归计数器。尽管如此,我还是iex -S mix标志--werl。 Erlang控制台打开,关闭,应用程序未启动。 DDDDD 我推断我不能mix带有--werl标志的项目目录,但是我什么时候应该使用它?我怎么能撬开IEx外壳?如果可能的话,我宁愿不使用Erlang控制台。

阅读IEx的Hex文档:

  

在某些Windows shell上可能无法使用此类函数[在其示例中为Enum]。你可能需要在启动iex时传递--werl标志,就像在iex --werl中工作一样。 - 可以通过设置IEX_WITH_WERL环境变量永久启用--werl。

文档不再说何时使用--werl选项。

显然,我是Elixir的新手,但即使这个问题是在大约2年前提出的,这似乎并不是一个显而易见的区别。

1 个答案:

答案 0 :(得分:1)

如果您想同时使用--werl-S mix,则必须将--werl放在-S mix之前。

iex --werl -S mix将有效,而iex -S mix --werl无效。