Mix install.archive 失败并要求 -i 指定目录

Mix install.archive fails and asks for -i to specify directory

我是运行这个命令

$ mix archive.install github ninenines/cowboy
* Getting new package (https://github.com/ninenines/cowboy.git)
remote: Counting objects: 9525, done.        
remote: Compressing objects: 100% (13/13), done.        
remote: Total 9525 (delta 0), reused 11 (delta 0), pack-reused 9511        
...
** (Mix) Cannot create archive without input directory, please pass -i as an option

但是没有 -i 选项,mix 不允许我那样做。我该如何解决这个问题?

TL;DRmix 项目之外无法执行此任务。

来自 Mix.Tasks.Archive.Install 文档:

If no argument is supplied but there is an archive in the project’s root directory (created with mix archive.build), then the archive will be installed locally. For example:

mix do archive.build, archive.install

If an argument is provided, it should be a local path or a URL to a prebuilt archive, a git repository, a github repository, or a hex package.

mix archive.install 在后台调用 archive.build。您收到的错误是由 archive.build, which, unlike install, receives -i option.

引入的

它反过来期望 installation spec 存在。

总结:有人可能会提供 dep_spec,如上面链接的源代码所示,但通常 mix 只是不明白在哪里 build 下载的包。之后,仍然会怀疑在哪里安装它。因此,最简单的解决方案是使用 mix new 创建空项目,然后在那里执行这些任务。