问题标签 [elixir-iex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compiler-errors - 如何在不编译更改的文件的情况下运行`iex -S mix`?
假设我正在编写一个新模块,代码还没有准备好,我想在 repl 中测试一些东西。我运行iex -S mix
但由于我不打算修复的编译错误而失败。
我认为我的应用程序有一个最后编译的版本,我可以使用iex
. 我怎么做?
debugging - Elixir phoenix调试导致交互式shell而不是pry
我一直在尝试调试凤凰应用程序。
为此,我使用了以下说明:
- 设置断点:require IEx; IEx.pry
- 启动调试服务器:iex -S mix phx.server
问题出现在启动服务器时,上面的指令将我引导到 elixir 交互式 shell(iex(1)>
)并且不允许服务器运行,如果我手动执行代码,它会在 prys 中停止,但我希望拥有服务器每当请求触发时运行和停止。有什么解决办法吗?
我目前正在使用 earlang 1.20、elixir 1.5 和 phoenix 1.3
elixir - 是否有内置的 IEX 命令来调用格式化?
我检查了 h 和 h(IEx) 并没有提出任何建议。
我确信我可以退出命令提示符并运行“混合格式”,但我想知道我是否遗漏了什么。是否有任何类似于 recompile/0 或 r/1 for iex 的命令允许我重新格式化项目中的源文件?
erlang - 从 cmdline 评估 Elixir 命令 - 模块不可用
我发现如果我执行以下操作,一切都会按预期工作:
但是,MyModule
如果我尝试,则不可用:
错误是:
** (UndefinedFunctionError) 函数 MyModule.process/0 未定义(模块 MyModule 不可用)
有谁知道在使用-e
标志时如何包含来自 mix 的依赖项?
shell - Elixir - 从 shell 调用模块函数
在 Elixir 中,有没有办法直接从 shell 调用模块函数,而不必启动iex -S mix
会话?让我用一个场景来说明:
作为我的 Phoenix 应用程序的一部分,我编写了一个从相邻iex -S mix
会话运行的帮助模块。这是一个超级简化的版本:
如果我开始会话,iex -S mix
然后从模块运行一个函数,一切正常:
然后ctrl-c a
关闭会话。
但是,如果我尝试类似:
这导致
或者,我尝试将我的模块重新定义为自定义混合任务,如下所述:https ://elixirschool.com/en/lessons/basics/mix-tasks/#custom-mix-task
但这也失败了,因为我的模块依赖于一些导入/别名,例如MyApp.Repo
,并尝试使用其中一个执行文件mix helper
或iex -S mix helper
导致
如果没有办法解决这个问题并且脚本只能从 running 中成功执行iex -S mix
,那很好......但是如果有一种方法可以设置,那么单线可以从 shell 运行以使其执行为-需要,那是蜜蜂的膝盖。
elixir - 如何调试失败的 Ecto 查询?
最终设置我的 repo Cross DB Ecto 配置后尝试运行查询失败给了我这个:
我试图谷歌如何让错误处理程序显示参数,但什么也没找到,所以我不知道错误是什么——我的查询无效,连接到 MySQL 服务器是否有问题等。
编辑:我想通了,它是Drupex.DrupalRepo.all
. 我通过添加IO.inspect
调用来解决这个问题lib/ecto/adapters/sql.ex
,但这是一个非常肮脏的黑客,肯定有更好的方法。
pandas - NotImplementedError: data_source='iex' 未实现
我正在尝试通过 jupyter notebook 中的 pandas_datareader 获取一些股票数据。我用的是谷歌,但是现在不行了,所以我用的是iex。
但是,它返回以下错误。
谁能帮我解决这个问题?
io - 在 Elixir iex 中运行 IO.read(:stdio, :all) 后如何退出?
我需要测试一些输入数据流,并使用'IO.read',但输入数据后我无法退出此模式,CTRL-Z/X/C/D 没有帮助(它终止整个 iex)。那么这个模式的EOF命令如何正确呢?谢谢!
namespaces - 如何在 Elixir Phoenix iex 控制台中停止强制模块命名空间?
在我的 Phoenix 应用程序中使用iex
控制台时,如下所示:
iex -S mix phx.server
我似乎无法调用函数,System
例如它强制命名空间到模块的前面。由于该命名空间模块不存在而导致错误。System.stop(1)
System.halt(1)
** (UndefinedFunctionError) function MyApp.SomeNamespace.System.stop/1 is undefined or private
为什么它在这个核心模块前面加上一个命名空间?为什么它会使用类似的模块产生此错误System
,但不会使用类似Enum
、、List
或的模块Map
?
此外,如果我iex
在我的应用程序源之外使用,我可以System.any_function
按预期调用。
经过进一步检查,我可以通过调用Elixir.System.stop/1
. 为什么我需要在System
模块前面加上Elixir.
但我不需要为其他 Elixir 模块这样做?
在我的应用程序代码中,我调用类似System.backtrace
或System.get_env
不需要别名或命名空间的东西。我也没有System
在应用程序中命名的模块(即,没有Myapp.System
定义或类似的模块)。