是假设你运行在更新config.exs后混合deps.compile?

Is it assumed that you run mix deps.compile after updating config.exs?

我已经开始使用 Elixir + Phoenix Framework 并开始为用户 registration/authentication 合并 addict 库。

瘾君子的文档告诉我更新 :addict 应用程序的 config.exs

config :addict, not_logged_in_url: "/error",
                db: MyApp.MyRepo,
                user: MyApp.MyUser,
                    :

直到我 运行 mix deps.compile 让 addict 代码获取配置后,替换数据库和用户值才生效。

现在我的问题是,当您对 config.exs 进行更改时是否假设为 运行 mix deps.compile

瘾君子文档没有说明这一点,对于像我这样的新手来说,这并不是很明显。当我实际查看 addict 的代码并看到它是在编译时通过模块属性设置的时,我才意识到这一点(因此需要 运行 mix deps.compile)。

只有编译时配置的依赖才需要重新编译。这样的编译时配置不是很常见,因此您应该联系 addict 的人,并请他们提供更好的说明,以了解有人在编译后配置 addict 时会发生什么。或者说服他们尽可能避免编译时配置。