非常教程

Elixir 1.5参考手册

Mix

Mix.Task

一个简单的模块,为创建,加载和操作任务提供了便利。

一个混合任务可以通过Mix.Task在一个以Mix.Tasks.run/1函数开始并定义该函数的模块中简单地使用来定义:

defmodule Mix.Tasks.Echo do
  use Mix.Task

  def run(args) do
    Mix.shell.info Enum.join(args, " ")
  end
end

run/1函数将接收传递给命令行的所有参数的列表。

属性

混合任务中有几个属性可用于在混合任务中配置它们:

  • @shortdoc-使用出现在mix help
  • @recursive-在伞式项目中递归地运行任务
  • @preferred_cli_env - 建议运行任务的环境。它用于没有Mix项目建议的情况下,或者MIX_ENV仅用于当前项目中的任务。@preferred_cli_env没有从依赖关系加载,因为在依赖关系加载之前我们需要知道环境。

文献资料

用户可以通过运行来阅读公共混音任务的文档mix help my_task。将显示的文档是@moduledoc任务模块的文档。

类型

task_module()task_name()

功能

alias?(task)

检查是否task存在调用的别名

all_modules()

返回所有加载的任务模块。

clear()

清除所有调用的任务,允许重新调用它们。

get(task)

接收任务名称,如果找到任务模块,则返回任务模块。

get!(task)

接收任务名称并检索任务模块。

load_all()

加载所有代码路径中的所有任务

load_tasks(dirs)

加载给定任务中paths的所有任务。

moduledoc(module)

获取给定任务的moduledoc。module

preferred_cli_env(task)

获取任务的首选cli环境。

ecursive(module)

检查是否应该对伞式项目中的所有子应用程序递归地运行该任务。

reenable(task)

重新启用给定的任务,以便它可以在堆栈中再次执行。

rerun(task, args \ [])

task与给定的论点重演

run(task, args \ [])

运行一个task与给定args

shortdoc(module)

获取给定任务的shortdoc module

task?(module)

返回true给定模块是否是任务

task_name(module)

返回给定的任务名称 module

回调

run(command_line_args)

一个任务需要实现run,它接收一个命令行参数列表

task_module()

task_module() :: atom

task_name()

task_name() :: String.t | atom

alias?(task)

alias?(task_name) :: boolean

检查别名是否调用task存在。

有关任务别名的更多信息,请参阅文档中的“别名”部分Mix

all_modules()

all_modules() :: [task_module]

返回所有加载的任务模块。

尚未加载的模块将不会显示。检查load_all/0是否要预先加载所有任务。

clear()

clear() :: :ok

清除所有调用的任务,允许重新调用它们。

此操作不是递归操作。

get(task)

get(task_name) :: task_module | nil

接收任务名称,如果找到任务模块,则返回任务模块。

否则,返回nil模块存在的情况下,但它不是任务或无法找到。

get!(task)

get!(task_name) :: task_module | no_return

接收任务名称并检索任务模块。

例外

  • Mix.NoTaskError - 如果找不到任务则提出
  • Mix.InvalidTaskError - 如果任务不是有效的,则提出 Mix.Task

load_all()

load_all() :: [task_module]

加载所有代码路径中的所有任务。

load_tasks(dirs)

load_tasks([List.Chars.t]) :: [task_module]

Loads all tasks in the given paths.

moduledoc(module)

moduledoc(task_module) :: String.t | nil

获取给定任务的moduledoc module

返回moduledoc或nil

preferred_cli_env(task)

preferred_cli_env(task_name) :: atom | nil

获取该任务的首选CLI环境。

返回环境(例如:test,或:prod)或nil

recursive(module)

recursive(task_module) :: boolean

检查是否应该为伞形项目中的所有子应用递归运行任务。

返回truefalse

reenable(task)

reenable(task_name) :: :ok

重新启用一个给定的任务,以便它可以在堆栈中再次执行。

调用此函数时,将重新启用别名和常规堆栈。

如果伞式项目重新启用任务,则将为所有子项目重新启用该任务。

rerun(task, args \ [])

rerun(task_name, [any]) :: any

task与给定的论点重演。

该函数重新执行给定的任务;要做到这一点,它首先重新启用任务,然后像平常一样运行。

run(task, args \ [])

run(task_name, [any]) :: any

运行task给定的args

如果尚未调用该任务,则运行该任务并返回结果。

如果有同名别名,则将调用别名而不是原始任务。

如果任务或别名已被调用,则不会再运行它们,只是简单地中止:noop

如果找不到别名或任务或任务无效,它可能会引发异常。检查get!/1更多信息。

shortdoc(module)

shortdoc(task_module) :: String.t | nil

获取给定任务的shortdoc module

返回shortdoc或nil

task?(module)

task?(task_module) :: boolean

回报true如果给定模块是一项任务。

task_name(module)

task_name(task_module) :: task_name

返回给定的任务名称module

run(command_line_args)

run(command_line_args :: [binary]) :: any

一个任务需要实现run,它接收一个命令行参数列表。

Elixir 1.5

Elixir 基于 Erlang 虚拟机的函数式、面向并行,是一种较好的编程语言。它以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发。

主页 https://elixir-lang.org/
源码 https://github.com/elixir-lang/elixir
版本 1.5
发布版本 1.5.2