【问题标题】:Should :name and/or :app be added to project definition in root mix.exs file in umbrella application?是否应将 :name 和/或 :app 添加到伞形应用程序的根 mix.exs 文件中的项目定义中?
【发布时间】:2021-05-05 06:18:01
【问题描述】:

我正在尝试使用 ExDoc 为我的 Elixir 项目中的应用程序生成文档。我的项目结构为一个伞形应用程序,有两个应用程序,一个功能核心和一个 Phoenix Web 前端。从伞的根目录运行命令mix docs 时,我收到以下错误消息:

** (RuntimeError) expected :name or :app to be found in the project definition in mix.exs
    (ex_doc 0.23.0) lib/mix/tasks/docs.ex:328: Mix.Tasks.Docs.run/3
    (mix 1.11.3) lib/mix/task.ex:394: Mix.Task.run_task/3
    (mix 1.11.3) lib/mix/cli.ex:84: Mix.CLI.run_task/2
    (elixir 1.11.3) lib/code.ex:931: Code.require_file/2

根 mix.exs 文件如下:

defmodule UmbrellaProject.MixProject do
  use Mix.Project

  def project do
    [
      apps_path: "apps",
      version: "0.1.0",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

  defp deps do
    [{:ex_doc, "~> 0.23.0", dev: true, runtime: false}]
  end
end

我是否应该将 :name 和/或 :app 值添加到 project/1 函数的列表中?如果是,是否有关于它们的值应该是什么的标准约定,或者它们可以是任何东西(在合理范围内)?

我使用的是 Elixir 版本 1.11.3。

【问题讨论】:

  • 我不确定version 是否应该在那里。你能把它删掉再试一次吗?
  • @DavidMagalhães 感谢您的建议,但它并没有解决问题。为什么在根 mix.exs 中不应该有 version?它是由混合伞生成器放在那里的
  • 我这里有一个没有它的总括项目。我认为如果存在版本,它可能需要一个名称。
  • 这很有趣。 ExDoc 在您的:name-less 项目中为您工作?唯一的区别是缺少版本?

标签: elixir elixir-mix ex-doc


【解决方案1】:

尝试在您的配置中添加name: " xxx "

defmodule UmbrellaProject.MixProject do
  use Mix.Project

  def project do
    [
      name: "My umbrella project",
      apps_path: "apps",
      version: "0.1.0",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

  defp deps do
    [{:ex_doc, "~> 0.23.0", dev: true, runtime: false}]
  end
end

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2019-07-09
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多