You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需启动iex -S mix会话,直接从Shell调用Elixir模块函数?

不用启动iex -S mix,直接从Shell调用Elixir模块函数的方法

当然可以啦!不用每次都进入iex -S mix会话,直接在系统Shell里就能调用Phoenix应用中你的辅助模块函数,给你两种实用的方法:

方法一:用mix run -e直接执行(最推荐)

mix run命令会自动帮你加载整个Phoenix应用的环境——包括Ecto、Repo这些依赖都会初始化好,完美适配你的MyApp.Helper模块场景。

在项目根目录下,直接运行:

mix run -e "MyApp.Helper.start()"

如果你的函数有返回值(比如示例里的{:ok, "Done"}),执行后会直接在Shell里输出结果。要是需要执行多行代码,也可以把逻辑写成字符串传入,比如:

mix run -e "result = MyApp.Helper.start(); IO.inspect(result)"

生产环境下只要指定环境变量就行:

MIX_ENV=prod mix run -e "MyApp.Helper.start()"

方法二:用elixir命令手动加载项目(适合特殊场景)

如果不想用mix,也可以直接用elixir命令,但需要手动指定项目的编译产物路径,让Elixir能找到你的模块:

elixir -pa _build/dev/lib/*/ebin -e "MyApp.Helper.start()"

不过这种方法需要确保项目已经编译过(可以先跑mix compile),而且不会自动初始化Phoenix应用的服务(比如Repo可能没启动),所以除非有特殊需求,还是推荐第一种方法。

额外提示

如果你的MyApp.Helper模块里有依赖应用的初始化逻辑(比如Ecto查询),mix run会自动帮你启动整个应用,不用手动调用Application.start(:my_app),非常省心。

内容的提问来源于stack exchange,提问作者skwidbreth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:45:46