查看源代码 mix phx.new (Phoenix v1.7.14)

创建一个新的 Phoenix 项目。

它需要项目路径作为参数。

$ mix phx.new PATH [--module MODULE] [--app APP]

将在给定 PATH 位置创建项目。应用程序名称和模块名称将从路径中获取,除非指定了 --module--app

选项

  • --umbrella - 生成一个伞形项目,包含一个用于您的域的应用程序和一个用于 Web 界面的应用程序。

  • --app - OTP 应用程序的名称

  • --module - 生成骨架中的基本模块的名称

  • --database - 指定 Ecto 的数据库适配器。以下选项之一:

    有关更多信息和要求,请查看驱动程序文档。默认值为 "postgres"。

  • --adapter - 指定 http 适配器。以下选项之一:

    有关更多信息和要求,请查看适配器文档。默认值为 "bandit"。

  • --no-assets - 等效于 --no-esbuild--no-tailwind

  • --no-dashboard - 不包含 Phoenix.LiveDashboard

  • --no-ecto - 不生成 Ecto 文件

  • --no-esbuild - 不包含 esbuild 依赖项和资产。除非是仅限 API 的应用程序,否则不建议设置此选项,因为这样做需要您手动添加和跟踪 JavaScript 依赖项

  • --no-gettext - 不生成 gettext 文件

  • --no-html - 不生成 HTML 视图

  • --no-live - 在您的 Endpoint 和 assets/js/app.js 中注释掉 LiveView 套接字设置。如果指定了 --no-html,则会自动禁用

  • --no-mailer - 不生成 Swoosh 邮件程序文件

  • --no-tailwind - 不包含 tailwind 依赖项和资产。生成的标记仍然会包含 Tailwind CSS 类,这些类被保留作为您随后对布局和组件进行样式设置的参考

  • --binary-id - 在 Ecto 模式中使用 binary_id 作为主键类型

  • --verbose - 使用详细输出

  • -v, --version - 打印 Phoenix 安装程序版本

在传递 --no-ecto 标志时,Phoenix 生成器(如 phx.gen.htmlphx.gen.jsonphx.gen.livephx.gen.context)可能无法按预期工作,因为它们生成依赖 Ecto 进行数据库访问的上下文文件。在这种情况下,您可以传递 --no-context 标志来生成大多数 HTML 和 JSON 文件,但跳过上下文,允许您根据需要填写空白。

同样,如果指定了 --no-html,则 phx.gen.html 生成的文件将不再起作用,因为缺少重要的 HTML 组件。

安装

mix phx.new 默认情况下会提示您获取并安装您的依赖项。您可以通过传递 --install 标志启用此行为,或者使用 --no-install 标志禁用它。

示例

$ mix phx.new hello_world

等效于

$ mix phx.new hello_world --module HelloWorld

或者不包含 HTML 和 JS 部分(适用于 API)

$ mix phx.new ~/Workspace/hello_world --no-html --no-assets

作为伞形项目

$ mix phx.new hello --umbrella

将生成以下目录结构和模块

hello_umbrella/   Hello.Umbrella
  apps/
    hello/        Hello
    hello_web/    HelloWeb

您可以使用官方 Elixir 指南 详细了解伞形项目