查看源代码 mix run (Mix v1.16.2)
运行当前应用程序。
mix run
启动当前应用程序依赖项和应用程序本身。如果应用程序尚未编译或已过时,它将被编译。
mix run
还可以通过附加选项在应用程序上下文中运行代码。例如,要在当前应用程序中运行脚本,可以将文件名作为参数传递。
$ mix run my_app_script.exs arg1 arg2 arg3
要执行的代码也可以使用 -e
选项内联传递。
$ mix run -e "DbUtils.delete_old_records()" -- arg1 arg2 arg3
在这两种情况下,脚本或表达式的命令行参数都可以在 System.argv/0
中获得。这与 elixir
可执行文件中的命令行界面一致。
对于启动长时间运行的系统,通常会传递 --no-halt
选项。
$ mix run --no-halt
还可以给出 --no-start
选项,当前应用程序及其依赖项将不会启动。或者,您可以使用 mix eval
来评估单个表达式而不启动当前应用程序。
如果您需要在使用 mix run
的同时向 Elixir 可执行文件传递选项,可以按如下方式完成。
$ elixir --sname hello -S mix run --no-halt
此任务会自动重新启用,因此可以多次使用不同的参数调用它。
命令行选项
--eval
,-e
- 评估给定的代码--require
,-r
- 执行给定的模式/文件--parallel
,-p
- 使所有要求并行--preload-modules
- 预加载应用程序中定义的所有模块--no-archives-check
- 不检查归档文件--no-compile
- 即使文件需要编译也不编译--no-deps-check
- 不检查依赖项--no-elixir-version-check
- 不检查 mix.exs 中的 Elixir 版本--no-halt
- 在运行命令后不停止系统--no-mix-exs
- 即使没有 mix.exs 也允许命令运行--no-start
- 编译后不启动应用程序