View Source mix eval (Mix v1.14.2)
Evaluates the given code within a configured application.
mix eval "IO.puts(1 + 2)"The given code is evaluated after the current application
has been configured, but without loading nor starting it.
See mix run for running your application and scripts within
a started application.
This task is designed to mirror the bin/my_app eval command
in releases. It is typically used to invoke functions already
defined within your application. For example, you may have a
module such as:
defmodule MyApp.ReleaseTasks do
def migrate_database do
Application.load(:my_app)
...
end
endOnce defined, you can invoke this function either via mix eval or
via bin/my_app eval inside a release as follows:
$ mix eval MyApp.ReleaseTasks.migrate_database
$ bin/my_app eval MyApp.ReleaseTasks.migrate_database
As you can see, the current application has to be either explicitly
loaded or started in your tasks, either by calling Application.load/1
or Application.ensure_all_started/1. This gives you full control over
the application booting life-cycle. For more information, see the
Application module.
This task is automatically re-enabled, so it can be called multiple times with different arguments.
Command-line options
--no-archives-check- does not check archives--no-compile- does not compile even if files require compilation--no-deps-check- does not check dependencies--no-elixir-version-check- does not check the Elixir version from mix.exs--no-mix-exs- allows the command to run even if there is no mix.exs