Поиск…


Создание задачи пользовательского смешивания

# lib/mix/tasks/mytask.ex
defmodule Mix.Tasks.MyTask do
  use Mix.Task

  @shortdoc "A simple mix task"
  def run(_) do
    IO.puts "YO!"
  end
end

Скомпилировать и запустить:

$ mix compile
$ mix my_task
"YO!"

Пользовательская задача смешения с аргументами командной строки

В базовой реализации модуль задачи должен определить функцию run/1 которая принимает список аргументов. Например, def run(args) do ... end

defmodule Mix.Tasks.Example_Task do
  use Mix.Task

  @shortdoc "Example_Task prints hello + its arguments"
  def run(args) do
    IO.puts "Hello #{args}"
  end
end

Скомпилировать и запустить:

$ mix example_task world
"hello world"

Псевдонимы

Elixir позволяет добавлять псевдонимы для ваших команд микширования. Прохладная вещь, если вы хотите сохранить себе некоторую типизацию.

Откройте mix.exs в проекте Elixir.

Сначала добавьте функцию aliases/0 в список ключевых слов, возвращаемый функцией project . Добавление () в конце функции псевдонимов не позволит компилятору отбросить предупреждение.

  def project do
    [app: :my_app,
     ...
     aliases: aliases()]
  end

Затем определите свою функцию aliases/0 (например, в нижней части файла mix.exs ).

  ...

  defp aliases do
    [go: "phoenix.server",
     trident: "do deps.get, compile, go"]
  end

Теперь вы можете использовать $ mix go для запуска вашего Phoenix-сервера (если вы используете приложение Phoenix ). И используйте $ mix trident чтобы сообщить mix, чтобы получить все зависимости, скомпилировать и запустить сервер.

Получение справки о доступных задачах микширования

Для отображения доступных задач микширования используйте:

mix help

Чтобы получить помощь по конкретной задаче, используйте mix help task например:

mix help cmd


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow