LoginSignup
7
7

More than 5 years have passed since last update.

Phoenix.new で作ったプロジェクトが動かない

Posted at

現象

Phoenix.new で新しいプロジェクトを作っても
エラーが発生して動かない状況に陥ってしまいました。

復旧方法

先に復旧方法を挙げると、
Phoenix Frameworkのバージョンをv0.15.0に上げれば動くようになりました。
(元々のバージョンはメモし忘れた。。)

バージョンアップ方法

Githubから直接ダウンロードしてインストールしようとするとエラーが発生したため、
こちらからローカルに.ezファイルをダウンロードしてインストールしました。
(詳しくは参考記事を参照ください)

>mix archive.install C:\phoenix_new-0.15.0.ez

発生したエラーについて

mix phoenix.server を実行すると下記のようなエラーが発生しました。

== Compilation error on file lib/phoenix/code_reloader.ex ==
** (CompileError) lib/phoenix/code_reloader.ex:61: function full_path/1 undefined
(stdlib) lists.erl:1337: :lists.foreach/2
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6

code_reloader.ex内で使用されているfull_path関数が定義されていないとのことです。
正常に動作するプロジェクト内を見てみると、plug/lib/plug/conn.ex で定義されていましたが、
エラーが発生しているプロジェクトでは定義がごっそり消えてました。

とりあえず、code_reloader.exからfull_pathを呼んでるところを全て消した状態にしたら、
動作しました。

github上では、code_reloader.exからfull_pathを呼ぶ部分がconn.request_pathを呼ぶように変更されていたので、
ライブラリ間でバージョンの差異が出てるんだろうと思い、バージョンアップすることに

参考記事

こちらの記事を参考にさせていただきました。
[Elixir+Phoenix]Upgrade phoenix.new of mix archive

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7