96 lines
3.3 KiB
Markdown
96 lines
3.3 KiB
Markdown
+++
|
|
date = "2017-04-11"
|
|
tags = ["elixir"]
|
|
title = "ElmとPhoenixで作成するWebアプリ"
|
|
slug = "elixir"
|
|
+++
|
|
|
|
Elmというのは、Reactのようなフレームワークで、見通しが良いのが特徴(だと思っています)。昔、Hello World程度に使ったことがありました。Elmは色々と面倒なところはありますが、分かりやすさはあります(一見して)。
|
|
|
|
PhoenixはErlangを書きやすくしたElixirのWebフレームワークで、リアルタイムのリロード関連の処理がやりやすかった記憶。
|
|
|
|
これらを組み合わせて何か作ってる人はかなり少ないですが、探してみると幾つかの記事が見つかりました。
|
|
|
|
それを参考に何か作ろうかなーとか思っていたので紹介。
|
|
|
|
https://medium.com/@diamondgfx/setting-up-elm-with-phoenix-be3a9f55bac2
|
|
|
|
https://ubiteku.oinker.me/2016/11/28/elixir-phoenix-and-elm/
|
|
|
|
https://github.com/cotoami/cotoami
|
|
|
|
これを見る限りでは`cotoami`というプロジェクトがあって、何やらmd共有とチャットサービスみたいなものが実験的に稼働しているみたいな感じなのかな。
|
|
|
|
```bash
|
|
$ git clone https://github.com/cotoami/cotoami
|
|
$ cd cotoami
|
|
$ npm i
|
|
$ mix deps.get
|
|
$ mix ecto.create && mix ecto.migrate
|
|
$ mix phoenix.server
|
|
```
|
|
|
|
それぞれのバージョン。
|
|
|
|
```bash
|
|
$ mix -v
|
|
Mix 1.5.0-dev
|
|
|
|
$ mix phoenix.new -v
|
|
Phoenix v1.2.1
|
|
|
|
$ psql -V
|
|
psql (PostgreSQL) 9.5.3
|
|
|
|
$ elm -v
|
|
0.18.0
|
|
```
|
|
|
|
macでやるとerlang,elixirのバージョンとかpostgrexなどの設定とかでかなりハマる。
|
|
|
|
> warning: variable "deps" does not exist and is being expanded to "deps()"
|
|
|
|
こんな感じでエラーが出る場合、`mix.exs`を編集して変数の語尾に`()`をつけることで回避可能。
|
|
|
|
> psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket
|
|
|
|
以下は`pid`などを削除。
|
|
|
|
> FATAL: lock file "postmaster.pid" already exists
|
|
|
|
```bash
|
|
$ rm /usr/local/var/postgres/postmaster.pid
|
|
$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
|
|
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
|
|
$ ps aux | grep postgres
|
|
```
|
|
|
|
以下はプロセスのKILLのワンライナー
|
|
|
|
```
|
|
$ ps aux | grep postgres | sed 's/ //g' | cut -d ' ' -f 2|sed '1d' | xargs kill
|
|
```
|
|
|
|
起動など。
|
|
|
|
```bash
|
|
$ initdb /usr/local/var/postgres -E utf8
|
|
$ pg_ctl -D /usr/local/var/postgres -l logfile start
|
|
$ createuser -P -d postgres
|
|
$ psql -l
|
|
```
|
|
|
|
> [error] Failed to connect to Redis
|
|
|
|
多分、`npm i`でredisはインストールされてれると思うけど一応。
|
|
|
|
```
|
|
$ npm i redis
|
|
$ redis-server
|
|
$ mix phoenix.server
|
|
```
|
|
|
|
というか、ここまでやってみて、Erlang、かなりつらいです。Rubyといい勝負というか、そんな感じで。また、PhoenixもRailsのような辛さが見え隠れしている印象で、最近、Golangを触っていたせいか、正直、ErlangやRubyなどの言語はGolangと比較してなんとなく辛いというか、そう感じるところがあったりして、しかし、サーバーサイドやデータベースなどを考慮するなら、こちらの選択もありだと思うので、慣れていきたいなと思いつつ、やっぱり慣れの問題なのかもしれませんね。おわり。
|
|
|
|
|