查看源代码 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
- 通过 https://github.com/elixir-ecto/postgrexmysql
- 通过 https://github.com/elixir-ecto/myxqlmssql
- 通过 https://github.com/livehelpnow/tdssqlite3
- 通过 https://github.com/elixir-sqlite/ecto_sqlite3
有关更多信息和要求,请查看驱动程序文档。默认值为 "postgres"。
--adapter
- 指定 http 适配器。以下选项之一:cowboy
- 通过 https://github.com/elixir-plug/plug_cowboybandit
- 通过 https://github.com/mtrudel/bandit
有关更多信息和要求,请查看适配器文档。默认值为 "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.html
、phx.gen.json
、phx.gen.live
和 phx.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 指南 详细了解伞形项目