Mix v1.1.1 Mix.Tasks.Compile.Elixir

Compiles Elixir source files.

Elixir is smart enough to recompile only files that 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 dependencies because often there are compilation time dependencies between them.

Command line options

  • --force - forces compilation regardless of modification times
  • --docs (--no-docs) - attach (or not) documentation to compiled modules
  • --debug-info (--no-debug-info) - attach (or not) debug info to compiled modules
  • --ignore-module-conflict - do not emit warnings if a module was previously defined
  • --warnings-as-errors - treat warnings as errors and return a non-zero exit code
  • --elixirc-paths - restrict the original elixirc paths to a subset of the ones specified. Can be given multiple times.

Configuration

  • :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.

Summary

Functions

Cleans up compilation artifacts

Returns Elixir manifests

Runs this task

Functions

clean()

Cleans up compilation artifacts.

manifests()

Returns Elixir manifests.

run(args)

Specs

run(OptionParser.argv) :: :ok | :noop

Runs this task.