16
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Elixir] Phoenix 1.6.0-devのプロジェクトを作成できるようにする

Last updated at Posted at 2021-08-20

※2021年8月20日現在の情報です

Phoenixの最新バージョンは1.5.10ですが、GitHubのリポジトリを見ると1.6.0-devが出ています。

  • mix phx.gen.auth の追加
  • webpack から esbuild への移行

などなど、魅力的なバージョンアップなので、ぜひ試してみたいですよね :sparkles:
しかし、残念ながら hex.pm には1.6.0-devは出ていません :cry:

そこで、Phoenixのソースでインストーラをビルドし、1.6.0-devのPhoenixプロジェクトを作成、起動してみます。環境の差異を考慮するのが面倒なので、Dockerを使います。

phx_new をインストール

READMEにphx_newのインストール手順が書かれていますが、まっさらな環境の場合はuninstallは不要です。

途中、Yes/Noを何度か聞かれますが、すべてYesで問題ありません。

$ docker run --rm -it -p 4000:4000 elixir:1.12.2-alpine sh
# 以下、コンテナ内
$ apk add git
$ git clone https://github.com/phoenixframework/phoenix.git
$ cd phoenix/installer
$ MIX_ENV=prod mix do archive.build, archive.install

これで、 mix phx.new が実行できるようになりました :tada:

$ mix phx.new -v
実行結果
Phoenix installer v1.6.0-dev

Phoenixプロジェクトを作成する

phx_new をインストールできれば、あとは mix phx.new でPhoenixプロジェクトを作成するだけです。

$ mix phx.new /sample --live --no-ecto

/sample に1.6.0-devのPhoenixプロジェクトが作成されます。

Phoenixプロジェクトを起動する

依存ライブラリはすでにインストールされているので、このまま起動したいところですが、 MIX_ENV=dev の環境ではデフォルトで 127.0.0.1 しか受け付けないようになっています。このままだと、Dockerを使っている場合、起動してもブラウザからアクセスできないため、 config/dev.exs を以下のように書き換えます。

config/dev.exs
config :sample, SampleWeb.Endpoint,
  # Binding to loopback ipv4 address prevents access from other machines.
  # Change to `ip: {0, 0, 0, 0}` to allow access from other machines.
- http: [ip: {127, 0, 0, 1}, port: 4000],
+ http: [ip: {0, 0, 0, 0}, port: 4000],

それでは、起動してみましょう。

$ mix phx.server

http://localhost:4000/dashboard/home にアクセスすると、Phoenix LiveDashboardが表示されるはずです。
Phoenix-LiveDashboard.png
いいですね〜 :heart:

最後に

ここまで注意深く見ていただいた方は分かるかと思いますが、Phoenixアプリを起動するまでにNode.jsをインストールしていません。webpackからesbuildに移行したことで、Node.jsが必須ではなくなりました。まあ、npmを使いたい場合は結局必要にはなりますが…

1.6.0の正式リリースが待ち遠しいですね!

16
5
1

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
16
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?