查看源代码 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 - 如果编译有一个或多个警告,则退出并返回非零状态

摘要

函数

返回当前项目的全部编译器。

函数

指向此函数的链接

compilers(config \\ Mix.Project.config())

查看源代码

返回当前项目的全部编译器。