The main entry point to compile source files.
It simply runs the compilers registered in your project and returns a tuple with the compilation status and a list of diagnostics.
Before compiling code, it loads the code in all dependencies and perform a series of checks to ensure the project is up to date.
:compilers - compilers to run, defaults to Mix.compilers/0, which are [:yecc, :leex, :erlang, :elixir, :app].
:consolidate_protocols - when true, runs protocol consolidation via the compile.protocols task. The default value is true.
:build_embedded - when true, embeds all code and priv content in the _build directory instead of using symlinks.
:build_path - the directory where build artifacts should be written to. This option is intended only for child apps within a larger umbrella application so that each child app can use the common _build directory of the parent umbrella. In a non-umbrella context, configuring this has undesirable side-effects (such as skipping some compiler checks) and should be avoided.
To see documentation for each specific compiler, you must invoke help directly for the compiler command:
mix help compile.elixir mix help compile.erlang
You can get a list of all compilers by running:
mix compile --list
--erl-config - path to an Erlang term file that will be loaded as Mix config--force - forces compilation--list - lists all enabled compilers--no-app-loading - does not load applications (including from deps) before compiling--no-archives-check - skips checking of archives--no-compile - does not actually compile, only loads code and perform checks--no-deps-check - skips checking of dependencies--no-elixir-version-check - does not check Elixir version--no-protocol-consolidation - skips protocol consolidation--no-validate-compile-env - does not validate the application compile environment--return-errors - returns error status and diagnostics instead of exiting on errorReturns all compilers.
Returns all compilers.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Tasks.Compile.html