node.js - ** (CaseClauseError) 没有匹配 : :eacces - Building release with MIX_ENV=prod 的 case 子句

标签 node.js elixir phoenix-framework elixir-mix exrm

我不确定把那个错误、elixir、phoenixframework 或 nodejs 放在哪里。

我正在尝试使用 elxir 和 phoenix 创建我的第一个版本。在发布版本期间,我看到以下错误。我只是不确定这是版本/依赖性问题还是与 nodejs 有关的问题,因为我能找到的与 eacces 相关的唯一信息与 nodejs 相关。我的配置中是否缺少任何内容?

这是错误堆栈:

Building release with MIX_ENV=prod.
** (CaseClauseError) no case clause matching: :eacces
lib/exrm/utils/utils.ex:110: ReleaseManager.Utils.relx/5
lib/mix/tasks/release.ex:341: anonymous fn/4 in   Mix.Tasks.Release.do_release/1
lib/ex_unit/capture_io.ex:146: ExUnit.CaptureIO.do_capture_io/2
lib/ex_unit/capture_io.ex:119: ExUnit.CaptureIO.do_capture_io/3
lib/mix/tasks/release.ex:340: Mix.Tasks.Release.do_release/1
lib/mix/tasks/release.ex:78: Mix.Tasks.Release.do_run/1
(mix) lib/mix/task.ex:296: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2

我的环境如下:
$ elixir -v
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.3.4

$ npm --version
3.10.8

添加 exrm 后,我遇到了一些版本问题,我通过将以下内容添加到我的依赖项中解决了这些问题:
 {:exrm, git: "git://github.com/bitwalker/exrm.git"},
 {:relx, github: "erlware/relx", override: true},
 {:erlware_commons, github: "erlware/erlware_commons", override: true},
 {:cf, "~> 0.2.1", override: true}

三小时后...

我使用 mix 创建了一个新的 Phoenix 项目,并且可以重现该问题。添加 exrm 后,我遇到了同样的错误。然后我切换到酿酒厂看到同样的错误。我创建了一个关于酿酒厂的问题,希望能找到解决方案。 Issue 142 on distillery

编辑:

酒厂报告中有关此问题的其他详细信息:

$ uname -a
达尔文·安德烈亚斯-MBP。 16.1.0 Darwin 内核版本 16.1.0:2016 年 10 月 13 日星期四 21:26:57 PDT;根:xnu-3789.21.3~60/RELEASE_X86_64 x86_64

我在我的主文件夹下完全由我的帐户拥有的开发树中至少有四个级别。

最佳答案

TL;博士

此错误是由尝试编写某些构建工件时被拒绝的权限引起的。您需要使用蒸馏器覆盖 EXRM 并检查文件/目录权限。

长说明

错误 eacces表示 Unix 系统中的权限被拒绝,即,当您的发布任务尝试写入某个构建的文件时,这会收到来自操作系统的拒绝权限。
CaseClauseError表示 EXRM 源代码中的 case clausule 不处理可能性。

无论如何,EXRM 已被弃用,您需要使用 distillery 覆盖它

关于node.js - ** (CaseClauseError) 没有匹配 : :eacces - Building release with MIX_ENV=prod 的 case 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833717/

相关文章:

javascript - 如何在创建文件的同一文件中调用 this.function

node.js - Mongoose - 无法将子文档推送到父文档中的数组中

javascript - 如何从 Node.js 中的远程库扩展 `Array.prototype`?

intellij-idea - Intellij 中的新 Elixir 项目

Elixir 到 Erlang 的转换

elixir - 关键字列表上的模式匹配

elixir - 在 Elixir/Phoenix 中,模板更改后, "cannot define module MyApp.PageView because it is currently being defined"

node.js - 用于简单缓存的 Node 缓存与 Redis

internationalization - 在 Phoenix 框架中使用 hex linguist 包

erlang - 为什么 Pry shell 在 Phoenix/cowboy 中超时如此之快? (shell 进程退出的原因是 : shutdown)