现在使用 Phoenix 框架。一开始,我们没有使用--umbrella
option 来生成项目。所以这个结构就像一个简单的伞式应用程序。
现在想改变项目的umbrella
方式。是否有可能以及如何做?
现在使用 Phoenix 框架。一开始,我们没有使用--umbrella
option 来生成项目。所以这个结构就像一个简单的伞式应用程序。
现在想改变项目的umbrella
方式。是否有可能以及如何做?
从 phoenix 1.3 和 elixir 1.5 开始:
在单独的目录中生成一个新的伞形应用程序:
$ mix new my_umbrella --umbrella
将您的 phoenix 应用程序移动到apps/
新的伞形目录中的目录:
$ mv /path/to/my_app /path/to/my_umbrella/apps/
您的构建路径、deps 文件夹以及主配置和混合文件现在位于保护伞的根目录中。您需要将以下行添加到您project
的 phoenix 中的函数中,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
假设您使用的是 brunch,您还需要编辑assets/package.json
phoenix app 文件夹中的文件以指向正确的位置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
.
从伞的根部,您应该能够启动您的凤凰服务器。
$ mix phx.server