mix phx.new (Phoenix v1.5.14) View Source
Creates a new Phoenix project.
It expects the path of the project as an argument.
mix phx.new PATH [--module MODULE] [--app APP]
A project at the given PATH will be created. The
application name and module name will be retrieved
from the path, unless --module
or --app
is given.
Options
--live
- include Phoenix.LiveView to make it easier than ever to build interactive, real-time applications--umbrella
- generate an umbrella project, with one application for your domain, and a second application for the web interface.--app
- the name of the OTP application--module
- the name of the base module in the generated skeleton--database
- specify the database adapter for Ecto. One of:postgres
- via https://github.com/elixir-ecto/postgrexmysql
- via https://github.com/elixir-ecto/myxqlmssql
- via https://github.com/livehelpnow/tds Please check the driver docs for more information and requirements. Defaults to "postgres".
--no-webpack
- do not generate webpack files for static asset building. When choosing this option, you will need to manually handle JavaScript dependencies if building HTML apps--no-ecto
- do not generate Ecto files.--no-html
- do not generate HTML views.--no-gettext
- do not generate gettext files.--no-dashboard
- do not include Phoenix.LiveDashboard--binary-id
- usebinary_id
as primary key type in Ecto schemas--verbose
- use verbose output
When passing the --no-ecto
flag, Phoenix generators such as
phx.gen.html
, phx.gen.json
, phx.gen.live
, and phx.gen.context
may no longer work as expected as they generate context files that rely
on Ecto for the database access. In those cases, you can pass the
--no-context
flag to generate most of the HTML and JSON files
but skip the context, allowing you to fill in the blanks as desired.
Similarly, if --no-html
is given, the files generated by
phx.gen.html
will no longer work, as important HTML components
will be missing.
Installation
mix phx.new
by default prompts you to fetch and install your
dependencies. You can enable this behaviour by passing the
--install
flag or disable it with the --no-install
flag.
Examples
mix phx.new hello_world
Is equivalent to:
mix phx.new hello_world --module HelloWorld
Or without the HTML and JS bits (useful for APIs):
mix phx.new ~/Workspace/hello_world --no-html --no-webpack
As an umbrella:
mix phx.new hello --umbrella
Would generate the following directory structure and modules:
hello_umbrella/ Hello.Umbrella
apps/
hello/ Hello
hello_web/ HelloWeb
You can read more about umbrella projects using the official Elixir guide
To print the Phoenix installer version, pass -v
or --version
, for example:
mix phx.new -v
Link to this section Summary
Functions
Callback implementation for Mix.Task.run/1
.