找不到任务“docs”。您指的是“do”吗?

问题描述 投票:0回答:6

如何生成mix项目的文档?怎么能做到呢?

使用 Elixir 混合项目的程序:

  • 我通过
    mix new greeter
    命令生成一个项目。
  • 我在
    greeter.ex
    文件中添加了一段注释。
  • 我将依赖项添加到
    mix.exs
    文件中。
  • 我尝试通过
    mix docs
    生成文档 命令。

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

我的错误是什么?

elixir documentation elixir-mix
6个回答
9
投票

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

您可以在混合文件的项目功能中配置一些内容。例如

name
source_url
homepage_url
。请务必查看 ExDoc 的文档以了解更多详细信息。

关于“找不到任务”错误,

mix help
列出了当前环境的任务。默认的混合环境是
:dev
,上面的
ex_doc
被添加到了
:dev
环境中。但是,某些项目使用
:docs
环境,而不是
:dev

此外,混合任务可以通过编译提供,因此您可能需要先编译(也尊重环境,如上所述)。

因此,如果

mix docs
未列出
mix help
任务或“无法找到”,请务必在
mix compile
依赖项的环境中运行
mix help
ex_doc
。例如,运行
MIX_ENV=docs mix compile
,然后运行
MIX_ENV=docs mix help
MIX_ENV=docs mix docs


3
投票

我删除

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

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

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

之后,我运行

mix docs
并生成了文档。

Command

mix help docs
也打印 ExDoc 文档。


1
投票

如果您安装了 ex_doc

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

如果您在

:prod
模式下运行,它将不起作用。您需要删除
only :dev
从上面的行开始。


1
投票

当我们有一个仅适用于某些环境(例如:test或:dev)的依赖项时,就会出现这种错误 因此,要解决此问题,请确保特定依赖项在所需环境中可用

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

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


0
投票

对我来说,问题是我已经设置了

preferred_cli_env: [docs: :docs]
,但
{:ex_doc, "~> 0.31", only: :dev, runtime: false},

所以

mix docs
总是使用
MIX_ENV=docs
,而
ex_doc
不可用。

ex_doc
依赖项更改为
only: :docs
解决了问题。


-1
投票

对于我的项目

mix do docs
有效。

© www.soinside.com 2019 - 2024. All rights reserved.