Skip to content
This repository has been archived by the owner on May 29, 2020. It is now read-only.
/ elm-live Public archive
forked from wking-io/elm-live

⚡ A flexible dev server for Elm. Live reload included!

License

Notifications You must be signed in to change notification settings

lamassu/elm-live

 
 

Repository files navigation

Travis – build status Coveralls – test coverage David – status of dependencies Code style: airbnb

elm-live

A flexible dev server for Elm
Live reload included!

 

Screencast

 

INSTALLATION

# Globally for a user:
npm install --global elm elm-live

# …or locally for a project:
npm install --save-dev elm elm-live

If you’d rather bring your own global elm-make, npm install --global elm-live will do.

Note that you need node 4.0+ to run the tool natively. But if you’re stuck on an older version, don’t worry! Rumour has it that you can transpile the code to ES5!

 

SYNOPSIS

elm-live [...<options>] [--] ...<elm-make args>  
elm-live --help

 

DESCRIPTION

First, we spawn elm-make with the elm-make args you’ve given.

When the build is ready, we start a static HTTP server in the current directory. We inject a live reload snippet into every HTML file we serve. Every time a static file has changed, we’ll reload your app in all browsers you’ve opened it with. (Mobile and IE included!)

We also watch all *.elm files in the current directory and its subdirectories. Whenever you change, add or remove one of them, we’ll rebuild your program and reload the page.

 

OPTIONS

--port=PORT

Set the port to start the server at. If the port is taken, we’ll use the next available one. PORT should be a valid port number. Default: 8000.

--path-to-elm-make=PATH

An absolute or relative path to elm-make. If you’ve installed elm-platform locally with npm (npm install --save-dev elm), you’ll likely want to set this to node_modules/.bin/elm-make. Default: elm-make.

--host=HOSTNAME|IP

Set the host interface to attach the server to. Default: localhost.

--dir=PATH

The base for static content. Default: ..

--open

We’ll open the app in your default browser as soon as the server is up.

--no-recover

When elm-make encounters a compile error, we keep elm-live running and give you time to fix your code. Pass --no-recover if you want the server to exit immediately whenever it encounters a compile error.

--pushstate

Serve index.html on 404 errors. This lets us use client-side routing in Elm. For instance, we can have a URL like http://localhost:8000/account get handled by the Elm navigation package instead of failing with a 404 error.

--help

You’re looking at it.

 

EXAMPLES

The simplest scenario:

$ elm-live Main.elm --open

Custom HTML file:

$ echo \
  '<!doctype html>
  <link rel="stylesheet" href="/style.css" />
  <script src="/elm.js"></script>
  ' > index.html
$ elm-live Main.elm --output=elm.js --open

Support client-side routing in Elm:

$ elm-live Main.elm --open --pushstate

 

CAVEATS

Your HTML file must have an explicit <body> tag, so that we know where to inject a LiveReload snippet.

 

CREDITS

Many thanks to Evan Czaplicki, the creator of Elm, for git.io/elm-make – the most brilliant language compiler the world has ever seen! Without elm-make, elm-live would be a car without an engine.

Many thanks to Matt DesLauriers for the wonderful git.io/budo-server. That’s what does the heavy lifting on the static server side.

Many thanks to Brian Dukes for making Windows support possible!

 

LICENSE

MIT © Tomek Wiszniewski

About

⚡ A flexible dev server for Elm. Live reload included!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 95.2%
  • Shell 4.8%