Elixir 混合自动确认

Posted

技术标签:

【中文标题】Elixir 混合自动确认【英文标题】:Elixir mix auto acknowledge 【发布时间】:2014-11-12 17:12:29 【问题描述】:

我想在 Travis-CI 上运行我的 Phoenix 应用程序测试。

日志摘录:

$ MIX_ENV=test mix do deps.get, compile, test

Could not find hex, which is needed to build dependency :phoenix

Shall I install hex? [Yn] 

在获取和安装依赖项时,它会询问是否应该安装hex。我想知道我是否可以通过 --yes 选项来混合,这样它就不会询问而只是安装?

【问题讨论】:

【参考方案1】:

您可以将此命令添加到 .travis.yml 中的 before_install 部分

混合 local.hex --force

当然,您已经在之前的命令中安装了 elixir。一世 cargo 从 github 上现有的 elixir 项目中获取了这个 .travis.yml。

language: erlang
env:
  - ELIXIR="v1.0.0"
otp_release:
  - 17.1
before_install:
  - mkdir -p vendor/elixir
  - wget -q https://github.com/elixir-lang/elixir/releases/download/$ELIXIR/Precompiled.zip && unzip -qq Precompiled.zip -d vendor/elixir
  - export PATH="$PATH:$PWD/vendor/elixir/bin"
  - mix local.hex --force
script: "MIX_ENV=test mix do deps.get, test"

【讨论】:

我认为这是更好的解决方案,应该被接受为答案!【参考方案2】:

与任何 unix 命令一样,您可以通过管道将yes 输入到 mix 命令中:

yes | MIX_ENV=test mix do deps.get, compile, test

【讨论】:

这让我大吃一惊。突然间,这个命令的存在变得非常有意义 这在 Docker 中存在问题(可能还有其他上下文) - Erlang 缓冲任何输入,因此恒定的“是”输入流可能导致溢出。看到这个答案:***.com/questions/36522559/…我建议神奇神奇狗弗雷德的答案是一个更好的答案。 确实.. 即使在小型应用程序中,这也会使您的 beam 过程爆炸到千兆字节的 RAM,直到触发 OOM 为止

以上是关于Elixir 混合自动确认的主要内容,如果未能解决你的问题,请参考以下文章

混合 Elixir 和 Erlang?

混合(elixir)没有这样的文件或目录

如何设置默认的 Elixir 混合任务

如何在 Windows 8.1 上运行 Elixir 脚本

在 Laravel Elixir 升级后使用严格添加到每个文件 - 损坏的脚本

基于 Laravel 开发博客应用系列 —— 从测试开始:使用Gulp实现自动化测试