檢視原始碼 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
- 編譯後不會啟動應用程式