1

现在使用 Phoenix 框架。一开始,我们没有使用--umbrellaoption 来生成项目。所以这个结构就像一个简单的伞式应用程序。

现在想改变项目的umbrella方式。是否有可能以及如何做?

4

1 回答 1

3

从 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
于 2018-01-09T21:17:38.117 回答