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)