根据documentation,运行mix local.phx应该会升级phoenix项目生成器。相反,它会降级它。这是预期的行为吗?为什么?

$ mix phx.new -v
Phoenix v1.4.8

$ mix local.phx
Found existing entry: /home/me/.mix/archives/phx_new-1.4.8
Are you sure you want to replace it with "https://github.com/phoenixframework/archives/raw/master/phx_new.ez"? [Yn]
* creating /home/me/.mix/archives/phx_new

$ mix phx.new -v
Phoenix v1.3.4

最佳答案

看来,尽管在撰写本文时,最新的版本是您链接到的版本1.4.8,但由phx_new关联的最后一个local.phx存档是针对1.3.4制作的。但是,有一个closed bug report on the archive repository带有注释,指出不再使用mix local.phx,正确的方法是从十六进制安装它,其中1.4.8 is available

mix archive.install hex phx_new


我提交了一个pull request来修复此问题,该问题已经合并并反向移植到1.4,因此默认情况下,local.phx在下一版本(可能是1.4.9版)中应使用十六进制。如果您使用的1.4.9之前的版本不包含此修复程序,则仍然有必要手动调用上述命令。我在文档中添加了一个注释来说明这一点,该注释已反向移植到1.4,但后来从主版本中删除,因此我想这个答案在1.5版之后就足够了😊

请注意,phoenix installation guide没有提及local.phx,而是正确地引入了上面的archive.install hex phx_new混合任务。

08-27 12:26