Есть ли правильный способ изменить не зонтичный проект, чтобы использовать функцию зонтиков с инфраструктурой Phoenix?

Используя феникс фреймворк сейчас. В начале мы не использовали --umbrella Возможность создания проекта. Таким образом, структура похожа на простое приложение зонтичного способа.

Теперь хочу изменить проект на umbrella путь. Возможно ли это и как это сделать?

1 ответ

Решение

Начиная с Феникса 1.3 и эликсира 1.5:

Создайте новое зонтичное приложение в отдельном каталоге:

$ mix new my_umbrella --umbrella

Переместите ваше приложение Phoenix в apps/ каталог в новом зонтичном каталоге:

$ mv /path/to/my_app /path/to/my_umbrella/apps/

Ваш путь сборки, папка deps и основные файлы конфигурации и микширования теперь находятся в корне зонтика. Вам нужно будет добавить следующие строки в ваш project функционировать в вашем фениксе mix.exs указать на правильные места, как показано ниже:

# my_umbrella/apps/my_app/mix.exs

def project do
  [
    # ...

    build_path: "../../_build",
    config_path: "../../config/config.exs",
    deps_path: "../../deps",
    lockfile: "../../mix.lock",

    # ...
  ]
end

Восстановите ваши зависимости от корня зонтика.

$ mix deps.get

Предполагая, что вы используете поздний завтрак, вам также нужно отредактировать assets/package.json файл в папке приложения Phoenix, чтобы указать правильное местоположение для deps/:

// my_umbrella/apps/my_app/assets/package.json
"phoenix": "file:../../../deps/phoenix",
"phoenix_html": "file:../../../deps/phoenix_html"

Возможно, вам придется обновить package-lock.json файл для повторного запуска npm install Команда, если используется последняя версия npm,

Из корня зонтика вы сможете запустить свой сервер Phoenix.

$ mix phx.server
Другие вопросы по тегам