mix deps.get 失败(依赖问题)

Posted

技术标签:

【中文标题】mix deps.get 失败(依赖问题)【英文标题】:mix deps.get fails (dependency issue) 【发布时间】:2017-05-01 03:50:30 【问题描述】:

我对 elixir 和 phoenix(以及 ubuntu)还很陌生,并且一直在努力让自己启动并运行 Web 开发。 在使用

创建新的 phoenix 应用程序时
mix phoenix.new webapp

我从终端收到以下错误

Fetch and install dependencies? [Yn] y
* running mix deps.get
* error command failed to execute, please run the following command again after installation: "mix deps.get"
* running npm install && node node_modules/brunch/bin/brunch build
* error command failed to execute, please run the following command again after installation: "npm install && node node_modules/brunch/bin/brunch build"

当运行mix deps.get

产生的错误信息是

** (Mix) No package with name phoenix_ecto (from: mix.exs) in registry

在使用这个平台时我还是个新手,所以我不完全确定如何在注册表中提取/获取/放置/下载phoenix_ecto 包。 据我了解,这一切都由十六进制包管理器处理。

几天前我确实设法让 phoenix 启动并运行,并设法在开发小型测试应用程序方面进行了一些尝试。 但似乎在我鲁莽的终端中某处 sudoing 我设法在某处破坏了某些东西。

一些额外的信息

Elixir 1.3.4
Mix 1.3.4
npm 3.5.2
node v4.2.6
Phoenix v1.2.1

如果需要任何其他信息,我很乐意提供!

【问题讨论】:

这是一个奇怪的错误。是的 phoenix_ecto 应该由十六进制处理。如果我是你,我会尝试将依赖项直接添加到你的混合文件中,如果它不存在的话。像这样::phoenix_ecto, "~> 3.1.0-rc.0" 我检查了我的 mix.exs 文件,依赖项已经是 :phoenix_ecto, "~> 3.0" 【参考方案1】:

我设法通过解锁依赖项并更新它们来修复错误。 命令如下。

mix deps.unlock --all
mix deps.update --all

现在项目已创建并且构建没有问题。 希望这可以帮助某人。

编辑 1:

如果上述方法不起作用,则您的十六进制安装可能已损坏。这是我在原始帖子发布大约一周后的情况。可以通过删除十六进制并重新安装来修复。

rm -rf ~/.mix/archives/hex-0.15.0
mix local.hex

您的十六进制版本可能与我的不同。

hex-0.xx.x

【讨论】:

我正要建议确保您的依赖项都已解锁。很高兴你自己找到了。【参考方案2】:

这可能会出现在几种情况下。首先检查你mix.exs deps 部分。确保 phoenix_ecto 放置正确的版本并选择。此外,您需要从本地检查phoenix_ecto,只需克隆 repo 并在您的项目中设置:phoenix_ecto, path: "..."。尝试编译本地。如果它在本地编译而不是在 deps 中编译,请检查 phoenix_ecto mix.exs 文件和 defp package 方法并确保返回列表带有 mix.exs [_, .., file: ~wmix.exs, _]

这个问题通常与 mix.exs 有关。

【讨论】:

以上是关于mix deps.get 失败(依赖问题)的主要内容,如果未能解决你的问题,请参考以下文章

模块构建失败:错误:在 css 导入 Laravel Mix 中写入 EPIPE(或使 processCssUrls:false)

由于依赖问题,离子启动失败

Spring Boot常见问题Maven依赖加载失败

解决 renren-fast-vue npm 下载依赖失败问题

idea构建失败?

npm 对等依赖意外失败