Mix.Task.Compiler поведение
В этом модуле определено поведение задачи Mix для компиляции.
Задача компилятора Mix может быть определена простым использованием Mix.Task.Compiler в модуле, имя которого начинается с Mix.Tasks.Compile., и определением функции run/1:
defmodule Mix.Tasks.Compile.MyLanguage do
use Mix.Task.Compiler
def run(_args) do
:ok
end
end
Функция run/1 возвращает атом, указывающий статус компиляции, и необязательно также список «диагностических сообщений», таких как предупреждения или ошибки компиляции. Это позволяет редакторам кода отображать проблемы непосредственно, без необходимости анализа вывода командной строки.
Если компилятор использует файлы манифеста для отслеживания устаревших источников, он должен определить manifests/0, а если он записывает какой-либо вывод в диск, он также должен определить clean/0.
Компилятор поддерживает те же атрибуты для конфигурации и документации, что и обычная задача Mix. См. Mix.Task для получения дополнительной информации.
Краткое описание
Типы
Функции
- after_compiler(name, fun)
Добавляет обратный вызов, который выполняется после указанного компилятора.
Обратные вызовы
- clean()
Удаляет артефакты сборки и манифесты.
- manifests()
Перечисляет файлы манифестов для компилятора.
- run(list)
Принимает аргументы командной строки и выполняет компиляцию. Если возникают ошибки, предупреждения или другая диагностическая информация, он должен вернуть кортеж со статусом и списком диагностических сообщений.
Типы
status()
Спецификации
status() :: :ok | :noop | :error
Функции
after_compiler(name, fun)
Спецификации
after_compiler(
atom(),
({status(), [Mix.Task.Compiler.Diagnostic.t()]} ->
{status(), [Mix.Task.Compiler.Diagnostic.t()]})
) :: :ok Добавляет обратный вызов, который выполняется после указанного компилятора.
Обратный вызов вызывается после выполнения компилятора и получает кортеж с текущим статусом и списком диагностических сообщений. Он должен вернуть обновлённый статус и диагностические сообщения.
Обратные вызовы
clean()
Спецификации
clean() :: any()
Удаляет артефакты сборки и манифесты.
manifests()
Спецификации
manifests() :: [Path.t()]
Перечисляет файлы манифестов для компилятора.
run(list)
Спецификации
run([binary()]) :: status() | {status(), [Mix.Task.Compiler.Diagnostic.t()]} Принимает аргументы командной строки и выполняет компиляцию. Если возникают ошибки, предупреждения или другая диагностическая информация, он должен вернуть кортеж со статусом и списком диагностических сообщений.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Task.Compiler.html