【问题标题】:The task "docs" could not be found. Did you mean "do"?找不到任务“文档”。您指的是 “do” 吗?
【发布时间】:2019-10-09 17:47:29
【问题描述】:

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

使用 Elixir 混合项目的过程:

  • 我通过mix new greeter 命令生成一个项目。
  • 我在greeter.ex 文件中添加了一个cmets 块。
  • 我将依赖项添加到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


    【解决方案1】:

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

    这是如何安装它:

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

    对于 Elixir >= 1.7:

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

    灵药

    
    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 docs任务没有被mix help列出或者“找不到”,请务必在ex_doc依赖的环境中运行mix compilemix help。例如,运行MIX_ENV=docs mix compile,然后运行MIX_ENV=docs mix helpMIX_ENV=docs mix docs

    【讨论】:

    • 它应该像这样工作,但由于某种原因它不起作用。 Elixir 版本是 1.8.2。我的 mix.exs 文件包含 (``` def deps do [ {:ex_doc, "~> 0.19", only: :dev, runtime: false}, ]) ``` 我试着做一个elixirschool.com/en/lessons/basics/documentation材料的描述.我已经完成了你所描述的一切。不幸的是,所有这些都不会导致文档的生成。
    • 我阅读了 ExDoc 文档。我想查看生成文档时可用的所有选项,运行mix help docs。我不能 - ** (Mix) The task "docs" could not be found. Did you mean "do"?
    【解决方案2】:

    我删除_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 文档。

    【讨论】:

      【解决方案3】:

      为我的项目mix do docs 工作。

      【讨论】:

        【解决方案4】:

        如果您安装 ex_doc 时使用

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

        如果您在:prod 模式下运行,它将无法工作。您需要删除only :dev 从上面的行。

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-08-26
            • 2016-05-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-02-14
            • 1970-01-01
            相关资源
            最近更新 更多