Putting an Elm in your Phoenixes
UPDATED: Elm 0.17
This repo works with Elm 0.17. There is a separate version of the code that works with Elm 0.16.
Each of the steps below has an associated commit (unless noted) so that you can just look at the diffs if you rather not read through each of the steps.
See below for gotchas.
The following tutorials have yet to be updated.
7. Signals (No related commit)
9. Fetching seats with an HTTP request (on a separate branch
10. Upgrading to Elm 0.16.0 (No related commit. You can skip this step if you're already on Elm 0.16.0 or greater.)
12. Upgrade to Elixir 1.2 and Phoenix 1.1.3 (No related commit. You can skip this step if you're already on Elixir 1.2.3 and Phoenix 1.1.4 or greater.)
Running the app without going through the tutorials
Maybe you'd like to just clone this repo and see it in action without going through the tutorials. In that case, check out the Setup post to install the requirements and then do the following:
git clone https://github.com/CultivateHQ/seat_saver-017.git seat_saver cd seat_saver mix deps.get npm install # if running on Windows you should ensure that psql is on the PATH # before trying these commands (see the Setup post mentioned above) # also remember to use \ instead of / in file paths mix ecto.create && mix ecto.migrate && mix run priv/repo/seeds.exs # once everything is setup, start a local server with iex -S mix phoenix.server
[Windows] Uncaught ReferenceError: Elm is not defined (submitted by @ramstein74)
Have a look at this issue.
TL;DR - in your brunch-config.json file change any file paths in the
elmBrunch plugin config to use
\/ instead of
/ as path separators.
Help! My Elm file won't stop compiling! (Hat tip to @scrogson)
If you put your elm folder in the web/static folder it can cause a cascade compile when you run the Phoenix server (i.e. the first compile will trigger another compile, which will trigger another compile etc.). This is because the web/static folder is watched by Brunch by default (although you can change this if you want to). Sticking to using the web folder (i.e. web/elm) as we do in the tutorial for an easy life. See part 2 for more info.
OSX El-Captian Phoenix 0.17 upgrade to 1.0.3 Postgres-ecto-create issue (submitted by @yeongsheng-tan)
Thought this might be useful for people following the tutorial attempting to get Phoenix 1.0.3 Postgresql 9.x up and running on OSX El-Captian hitting postgres-ecto-create permission related warnings/errors when upgrading from an existing Phoenix 0.17 install.
- (Mix) The database for SeatSaver.Repo couldn't be created, reason given: psql: FATAL: role "postgres" does not exist
- (Mix) The database for SeatSaver.Repo couldn't be created, reason given: psql: FATAL: role "postgres" is not permitted to log in
'permission denied' when attempting to install elm core packages on El Capitan (submitted by @yeongsheng-tan)
@yeongsheng-tan was getting a 'permission denied' issue when attempting to install elm core packages in embedding elm into phoenix steps
elm package install -y elm-package: /usr/bin/git: fileAccess: permission denied (Operation not permitted)
Solution is provided here
- Updated OSX El-Capitan Elm installer required
Any feedback, questions, complaints, bribes etc. are appreciated (well the first two anyway). Please submit as issues.