簡體   English   中英

** (CaseClauseError) 沒有 case 子句匹配::eacces - 使用 MIX_ENV=prod 構建版本

[英]** (CaseClauseError) no case clause matching: :eacces - Building release with MIX_ENV=prod

我不確定把那個錯誤、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 創建了一個新的鳳凰項目,並且可以重現該問題。 添加 exrm 后,我遇到了同樣的錯誤。 然后我切換到釀酒廠看到同樣的錯誤。 我創建了一個關於釀酒廠的問題,希望能找到解決方案。 關於釀酒廠的第 142 期


編輯:

酒廠報告中有關此問題的其他詳細信息:

$ uname -a Darwin Andreass-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 已被棄用,您需要使用酒廠覆蓋它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM