Skip to content
npm package for compiling, serving, and hot-reloading Elm code
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test
.gitignore
README.md
bin.js
elm-package.json
index.js
package.json

README.md

elm-server

An npm package for compiling, serving, and hot-reloading Elm code.

Installation

$ npm install -g elm-server

Getting started

By default elm-server will direct produce and serve an html file in your current directory.

$ elm-server path/to/Main.elm

Usage

  Usage: bin [options] <inputFile> [inputFiles...]

  Options:

    -h, --help               output usage information
    -V, --version            output the version number
    -o, --output <path>      Path to elm-make output [index.html].
    -s, --start-path <path>  Initial path when opening browser.
    -w, --watch <directory>  Path to served directory.  Defaults
                              to directory of output file path.
output

In most cases you'll want to specify an output file path in your project's assets directory.

$ elm-server src/elm/Main.elm --output assets/index.html
watch

Specifying a watched directory is useful when you want to serve assets in development which aren't generated from elm-make, like images and css.

$ elm-server src/elm/Main.elm --output assets/html/index.html --watch assets

This will allow elm-server to serve all files in the assets directory.

start-path

The initial path opened in the browser on start, for convenience.

$ elm-server src/elm/Main.elm \
    --output assets/js/elm.js \
    --watch assets \
    --start-path html/index.html

Programmatic Usage

In addition to providing a cli, elm-server can also be called programmatically.

const elmServer = require('elm-server');

elmServer('src/elm/Main.elm', {
  output: 'assets/js/elm.js',
  watch: 'assets'
});

or in the case of multiple entrypoints,

const elmServer = require('elm-server');

elmServer(['src/elm/Main1.elm', 'src/elm/Main2.elm']);
You can’t perform that action at this time.