mix phx.new
Исходный кодСоздает новый проект Phoenix.
Ожидает путь к проекту в качестве аргумента.
$ mix phx.new PATH [--module MODULE] [--app APP]
Будет создан проект по указанному пути PATH. Имя приложения и имя модуля будут получены из пути, если не указаны --module или --app.
Параметры
--umbrella— создать umbrella-проект с одним приложением для предметной области и вторым приложением для веб-интерфейса.--app— имя приложения OTP--module— имя базового модуля в генерируемом скелете-
--database— указать адаптер базы данных для Ecto. Один из:-
postgres— через https://github.com/elixir-ecto/postgrex -
mysql— через https://github.com/elixir-ecto/myxql -
mssql— через https://github.com/livehelpnow/tds -
sqlite3— через https://github.com/elixir-sqlite/ecto_sqlite3
Пожалуйста, обратитесь к документации драйвера для получения дополнительной информации и требований. По умолчанию "postgres".
-
-
--adapter— указать HTTP-адаптер. Один из:-
cowboy— через https://github.com/elixir-plug/plug_cowboy -
bandit— через 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— закомментировать настройку сокета LiveView в вашей Endpoint и assets/js/app.js. Автоматически отключается, если указан флаг --no-html--no-mailer— не генерировать файлы почтовой службы Swoosh--no-tailwind— не включать зависимости и ассеты tailwind. Сгенерированная разметка все равно будет содержать классы Tailwind CSS, они оставлены в качестве примера для последующей стилизации вашего макета и компонентов--binary-id— использоватьbinary_idв качестве типа первичного ключа в схемах Ecto--verbose— использовать подробный вывод-v,--version— выводит версию установщика Phoenix--no-version-check— пропустить проверку наличия последней версии phx_new--no-agents-md— не генерировать файлAGENTS.md
При передаче флага --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
В виде umbrella-проекта:
$ mix phx.new hello --umbrella
Сгенерирует следующую структуру каталогов и модули:
hello_umbrella/ Hello.Umbrella
apps/
hello/ Hello
hello_web/ HelloWeb
Подробнее об umbrella-проектах можно прочитать в документации mix
PHX_NEW_CACHE_DIR
В редких случаях может быть полезно скопировать сборку из ранее кэшированной сборки. Для этого установите переменную окружения PHX_NEW_CACHE_DIR перед запуском mix phx.new. Например, вы можете сгенерировать кэш, выполнив:
mix phx.new mycache --no-install && cd mycache && mix deps.get && mix deps.compile && mix assets.setup && rm -rf assets config lib priv test mix.exs README.md
Каталог кэшированной сборки должен содержать:
_build deps mix.lock
Затем вы можете выполнить:
PHX_NEW_CACHE_DIR=/path/to/mycache mix phx.new myapp
Весь каталог кэша будет скопирован в новый проект, заменяя любые существующие файлы в случае конфликтов.
© 2014 Chris McCord
Licensed under the MIT License.
https://phoenix.hexdocs.pm/Mix.Tasks.Phx.New.html