※2021年8月20日現在の情報です
Phoenixの最新バージョンは1.5.10ですが、GitHubのリポジトリを見ると1.6.0-devが出ています。
-
mix phx.gen.auth
の追加 - webpack から esbuild への移行
などなど、魅力的なバージョンアップなので、ぜひ試してみたいですよね
しかし、残念ながら hex.pm には1.6.0-devは出ていません
そこで、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
が実行できるようになりました
$ 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 :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アプリを起動するまでにNode.jsをインストールしていません。webpackからesbuildに移行したことで、Node.jsが必須ではなくなりました。まあ、npmを使いたい場合は結局必要にはなりますが…
1.6.0の正式リリースが待ち遠しいですね!