现在使用 Phoenix 框架。一开始,我们没有使用--umbrellaoption 来生成项目。所以这个结构就像一个简单的伞式应用程序。
现在想改变项目的umbrella方式。是否有可能以及如何做?
现在使用 Phoenix 框架。一开始,我们没有使用--umbrellaoption 来生成项目。所以这个结构就像一个简单的伞式应用程序。
现在想改变项目的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.jsonphoenix 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