Skip to content

donejs/done-serve

Repository files navigation

done-serve

Join our Slack Join our Discourse License: MIT npm version Build Status Greenkeeper badge

A simple development server for DoneJS projects.

Install

npm install done-serve

Usage

node_modules/.bin/done-serve [path] [options]

[path] is the root directory. Defaults to the current working directory.

To start a full server that hosts your application from the ./dist directory on port 3030 run:

node_modules/.bin/done-serve dist --port 3030

Options

The following [options] can be specified from the command line:

-p, --port

Specify the port the server should run on. If unspecified this port will be one of:

  • the PORT environment variable
  • 3030

-r, --proxy

Proxy a local path (default: /api) to the given URL (e.g. http://api.myapp.com).

-t, --proxy-to

Set the proxy endpoint (default: /api).

--proxy-no-cert-check

Turn off SSL certificate verification.

-d, --develop

Start a live-reload server so any code changes will be reflected immediately.

-l, --no-live-reload

Disable live-reload when used with the --develop option.

--live-reload-port

Specify the port (a Number) to use for live-reload. The default port is specified in the LiveReloadOptions documentation.

-s, --static

Only serve static files, do not perform server-side rendering. Notably this is useful when debugging an issue in the app.

--error-page

With the --static flag set, set an HTML page that should be sent instead of the normal error page. This is useful when you want to use Pushstate without server side rendering.

--auth-cookie

Specifies the name of a cookie that done-ssr will use to enable JavaScript Web Token (JWT) auth.

--auth-domains

A comma-separated string of domain names that are authorized to receive the JWT token. Required if --auth-cookie is used.

--timeout

Specify a timeout for server rendering. If the timeout is exceeded the server will return whatever has been rendered up until that point. (default: 5000)

--debug

Enable debug information in case of a timeout. The debug information will be appended to the document as a modal window and provides stack traces. Only use this flag during development.

--key, --cert

Provide SSL key and certificate files. When providing these options both HTTP and HTTP2 servers will be set up, with automatic forwarding.

done-serve --static --key ~/.localhost-ssl/private.pem --cert ~/.localhost-ssl/cert.pem

--strategy

Provides which rendering strategy to use. By default done-ssr waits for all asynchronous tasks to complete before serializing HTML and returning that to the browser. The options are:

  • safe: The default strategy as described above.
  • incremental: This rendering strategy prioritizes returning HTML to the browser sooner. Along with the HTML a shim is sent that communicates with the server to receive rendering instructions. This allows a faster rendering experience in browsers that support HTTP2. This strategy will silently fall back to the safe strategy if HTTP2 is not supported. Using this option requires also providing --key and --cert flags, as HTTP2 requires SSL.

Usage in Node

You can also use the server, with the same options, from JavaScript:

var server = require("done-serve");

server({
path: "path/to/dir"
});

Changelog

See the latest releases on GitHub.

Contributing

The DoneJS contribution guide has information on getting help, reporting bugs, developing locally, and more.

License

MIT