找不到任务 "docs"。您是说 "do" 吗?

The task "docs" could not be found. Did you mean "do"?

如何为混合项目生成文档?它是怎么做到的?

使用 Elixir 混合项目的过程:

mix help 不能在可能的选项列表中提供docs任务:

mix                   # Runs the default task (current: "mix run")
mix app.start         # Starts all registered apps
mix app.tree          # Prints the application tree
mix archive           # Lists installed archives
mix archive.build     # Archives this project into a .ez file
mix archive.install   # Installs an archive locally
mix archive.uninstall # Uninstalls archives
mix clean             # Deletes generated application files
mix cmd               # Executes the given command
mix compile           # Compiles source files
mix deps              # Lists dependencies and their status
mix deps.clean        # Deletes the given dependencies' files
mix deps.compile      # Compiles dependencies
mix deps.get          # Gets all out of date dependencies
mix deps.tree         # Prints the dependency tree
mix deps.unlock       # Unlocks the given dependencies
mix deps.update       # Updates the given dependencies
mix dialyzer          # Runs dialyzer with default or project-defined flags.
mix dialyzer.build    # Build the required plt(s) and exit.
mix dialyzer.clean    # Delete plt(s) and exit.
mix dialyzer.explain  # Display information about dialyzer warnings.
mix do                # Executes the tasks separated by comma
mix escript           # Lists installed escripts

当我 运行 mix docs 命令时,我收到一条混合消息:

**(Mix) The task "docs" could not be found. Did you mean "do"?

Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  earmark 1.3.2
  ex_doc 0.20.2
  makeup 0.8.0
  makeup_elixir 0.13.0
  nimble_parsec 0.5.0
All dependencies are up to date

我的错误是什么?

mix docs 任务可用于 ExDoc。确保安装了依赖项。确保查看文档并正确安装。然后你就可以使用 mix docs 命令了。

安装方法如下:

  • 将其添加到 mix.exs 中的依赖项:

对于 Elixir >= 1.7:

def deps do
  [
    {:ex_doc, "~> 0.19", only: :dev, runtime: false},
  ]
end

长生不老药 < 1.7:


def deps do
  [
    {:ex_doc, "~> 0.18.0", only: :dev, runtime: false},
  ]
end
  • 运行 mix deps.get
  • 运行 mix docs

您可以在混音文件的项目函数中配置一些东西。如namesource_urlhomepage_url。请务必查看 ExDoc 的文档以获取更多详细信息。

关于“找不到任务”错误,mix help 列出了 当前 环境的任务。默认混合环境是:dev,上面ex_doc被添加到:dev环境。但是,some projects 使用 :docs 环境,而不是 :dev

另外,mix任务可以通过编译提供,所以你可能需要先编译(同样尊重环境,同上)。

因此,如果 mix docs 任务未被 mix help 列出或“找不到”,请务必 运行 mix compilemix helpex_doc 依赖的环境中。例如,运行 MIX_ENV=docs mix compile,然后 MIX_ENV=docs mix helpMIX_ENV=docs mix docs.

我删除_build目录,删除deps目录的所有内容,删除mix.lock.

然后在 mix-project 的命令行中执行命令:

  1. mix deps.clean --all
  2. mix deps.update --all
  3. mix deps.get --all

之后,我 运行 mix docs 生成了文档。

命令 mix help docs 也打印 ExDoc 文档。

我的项目 mix do docs 成功了。

如果您安装了 ex_doc 和

{:ex_doc, "~> 0.19", only: :dev, runtime: false},

如果您 运行 处于 :prod 模式,它将不起作用。您需要删除 only :dev 从上面的行。

当我们有一个只对某些环境可用的依赖项时,比如 :test 或 :dev,就会出现这种错误 所以要解决这个问题,请确保特定的依赖项在所需的环境中可用

{:ex_doc, ">= 0.0.0", runtime: false}

像这样更新它应该可以解决问题。