查看源代码 mix compile (Mix v1.16.2)
编译源文件的入口点。
它简单地运行在您的项目中注册的编译器,并返回一个包含编译状态和诊断列表的元组。
在编译代码之前,它会执行一系列检查以确保所有依赖项都被编译并且项目是最新的。然后,Elixir 系统的代码路径将被修剪,只包含您在 mix.exs
中明确列出的依赖项和应用程序。
配置
:build_embedded
- 此选项用于将所有代码和私有内容复制到_build
目录。但是,此选项不再起作用,因为 Elixir 现在将在发布时复制这些内容。:compilers
- 要运行的编译器,默认值为Mix.compilers/0
,即[:erlang, :elixir, :app]
。:consolidate_protocols
- 当true
时,通过mix compile.protocols
任务运行协议合并。默认值为true
。:build_path
- 构建工件应写入到的目录。此选项仅适用于较大伞形应用程序中的子应用程序,以便每个子应用程序可以使用父伞形应用程序的公共_build
目录。在非伞形应用程序环境中,配置此选项会产生不良的副作用(例如跳过某些编译器检查)应避免。:prune_code_paths
- 编译前修剪代码路径。当为 true(默认值)时,这会修剪项目文件中未列出依赖项的应用程序的代码路径。当为 false 时,这会使项目启动时整个 Erlang/OTP 可用,包括代码加载器从ERL_LIBS
环境设置的路径以及通过提供-pa
和-pz
选项明确列出的路径到 Erlang。
编译器
要查看每个特定编译器的文档,您必须直接为编译器命令调用 help
。
$ mix help compile.elixir
$ mix help compile.erlang
您可以通过运行以下命令获取所有编译器的列表:
$ mix compile --list
命令行选项
--all-warnings
(--no-all-warnings
) - 打印所有警告,包括以前的编译(默认情况下为 true,除非发生错误)--erl-config
- Erlang 项文件的路径,该文件将作为 Mix 配置加载--force
- 强制编译--list
- 列出所有启用的编译器--no-app-loading
- 编译后不加载 .app 资源文件--no-archives-check
- 跳过存档检查--no-compile
- 实际上不编译,只加载代码并执行检查--no-deps-check
- 跳过依赖项检查--no-elixir-version-check
- 不检查 Elixir 版本--no-optional-deps
- 不编译或加载可选依赖项。用于测试库在没有可选依赖项的情况下是否仍然可以成功编译(这是依赖项的默认情况)--no-prune-code-paths
- 编译前不修剪代码路径,这使得项目启动时整个 Erlang/OTP 可用--no-protocol-consolidation
- 跳过协议合并--no-validate-compile-env
- 不验证应用程序编译环境--return-errors
- 返回错误状态和诊断信息,而不是在出错时退出--warnings-as-errors
- 如果编译有一个或多个警告,则退出并返回非零状态
摘要
函数
返回当前项目的全部编译器。