如何生成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
我的错误是什么?
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
。
我删除
_build
目录,删除deps
目录的所有内容,删除mix.lock
。
然后在 mix-project 的命令行中我执行命令:
mix deps.clean --all
mix deps.update --all
mix deps.get --all
之后,我运行
mix docs
并生成了文档。
Command
mix help docs
也打印 ExDoc 文档。
如果您安装了 ex_doc
{:ex_doc, "~> 0.19", only: :dev, runtime: false},
如果您在
:prod
模式下运行,它将不起作用。您需要删除only :dev
从上面的行开始。
当我们有一个仅适用于某些环境(例如:test或:dev)的依赖项时,就会出现这种错误 因此,要解决此问题,请确保特定依赖项在所需环境中可用
{:ex_doc, ">= 0.0.0", runtime: false}
像这样更新它应该可以解决问题。
对我来说,问题是我已经设置了
preferred_cli_env: [docs: :docs]
,但{:ex_doc, "~> 0.31", only: :dev, runtime: false},
所以
mix docs
总是使用 MIX_ENV=docs
,而 ex_doc
不可用。
将
ex_doc
依赖项更改为 only: :docs
解决了问题。
对于我的项目
mix do docs
有效。