Mix v1.9.4 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

Configuration

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

  • :elixirc_options - compilation options that apply to Elixir's compiler. They are the same as the command line options listed above. They must be specified as atoms and use underscores instead of dashes (for example, :debug_info). These options can always be overridden from the command line and they have the same defaults as their command line counterparts, as documented above.