elixir - 是否应该将 :name 和/或 :app 添加到伞形应用程序的根 mix.exs 文件中的项目定义中?
问题描述
我正在尝试使用 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
project/1
我应该在函数列表中添加 :name 和/或 :app 值吗?如果是,是否有标准约定它们的值应该是什么,或者它们可以是什么(在合理范围内)?
我正在使用 Elixir 版本 1.11.3。
解决方案
尝试添加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
推荐阅读
- javascript - 使用 TypeORM 更新多对多关系
- javascript - JavaScript 承诺不会将数据传递给 .then 除非我明确使用 Promise.resolve
- java - 使用以前版本的 json 从第三方 jar 重命名 Jsonproperties
- google-chrome - 为 webrtc chrome 同步假音频和媒体流
- java - 当我尝试在 Eclipse 上访问我的 API 但它在 IntelliJ 上工作时出现 NullPointerException
- f# - 匹配子句中的活动模式
- node.js - 将 Node.js 项目从普通 ES6 迁移到 TypeScript
- twig - 多语言设置中 Twig 模板中的 Grav 页面路由
- sql-server - 多值参数为空时选择所有记录
- algorithm - 对 Dijkstra 算法的证明感到困惑