Mix v1.7.3 mix compile.elixir View Source

Compiles Elixir source files.

Elixir is smart enough to recompile only files that have changed and their dependencies. This means if lib/a.ex is invoking a function defined over lib/b.ex, whenever lib/b.ex changes, lib/a.ex is also recompiled.

Note it is important to recompile a file’s dependencies as there are often compile time dependencies between them.

Command line options

  • --force - forces compilation regardless of modification times
  • --docs (--no-docs) - attaches (or not) documentation to compiled modules
  • --debug-info (--no-debug-info) - attaches (or not) debug info to compiled modules
  • --ignore-module-conflict - does not emit warnings if a module was previously defined
  • --warnings-as-errors - treats warnings in the current project as errors and return a non-zero exit code
  • --long-compilation-threshold N - sets the “long compilation” threshold (in seconds) to N (see the docs for Kernel.ParallelCompiler.compile/2)
  • --all-warnings - prints warnings even from files that do not need to be recompiled


  • :elixirc_paths - directories to find source files. Defaults to ["lib"].

  • :elixirc_options - compilation options that apply to Elixir’s compiler, they are: :ignore_module_conflict, :docs and :debug_info. By default, uses the same defaults as elixirc and they can always be overridden from the command line according to the options above.

Link to this section Summary


Cleans up compilation artifacts

Returns Elixir manifests

Runs this task

Link to this section Functions

Cleans up compilation artifacts.

Returns Elixir manifests.

Runs this task.