cordova-serve

Apache Cordova server support for cordova-lib and cordova-browser.

Usage no npm install needed!

<script type="module">
  import cordovaServe from 'https://cdn.skypack.dev/cordova-serve';
</script>

README

cordova-serve

NPM

Node CI

This module provides a JavaScript API to serve up a Cordova application in the browser.

API Example:

const cordovaServe = require('cordova-serve')();

cordovaServe.launchServer(options);
cordovaServe.servePlatform(platform, options);
cordovaServe.launchBrowser(options);

API Methods

launchServer()

Launches a local HTTP server.

Code Example:

const cordovaServe = require('cordova-serve')();

cordovaServe.launchServer(options).then(function () {
    const { server, port, root } = cordovaServe;
    ...
}, error => {
    console.log(`An error occurred: ${error}`);
});

Parameters:

  • options: described below in the following section "launchServer & servePlatform Options".

Return:

Returns a resolved or rejected promise depending on if the server had launched successfully.

On a fulfilled promise, the following properties are available on the returned object:

Property | Description -|- serve | The Node http.Server instance. root | The root that was specified, or cwd if none specified. port | The port that was used. (Either the requested port, the default port of 8000, or the incremented value of the chosen port when the chosen port is already in use).

servePlatform()

Launches a server that serves up any Cordova platform (e.g. browser, android, etc) from the current project.

Code Example:

const cordovaServe = require('cordova-serve')();

cordovaServe.servePlatform(platform, options).then(() => {
    const { server, port, projectRoot, root } = cordovaServe;
    ...
}, error => {
    console.log(`An error occurred: ${error}`);
});

Parameters:

  • options: described below in the following section "launchServer & servePlatform Options".

Return:

Note that for servePlatform(), the root value should be a Cordova project's root folder or any folder within it. servePlatform() will replace it with the platform's www_dir folder. If this value is not specified, the cwd will be used.

Returns a resolved or rejected promise depending on if the server had launched successfully.

On a fulfilled promise, the following properties are available on the returned object:

Property | Description -|- serve | The Node http.Server instance. root | The requested platform's www folder. projectRoot | The root folder of the Cordova project. port | The used port. requested port, the default port 8000, or incremented value of the chosen port when already in use).

launchBrowser()

Launches a browser window pointing to the specified URL.

Code Example:

const cordovaServe = require('cordova-serve')();

cordovaServe.launchBrowser(options).then(
  stdout => {
    console.log(`Browser was launched successfully: ${stdout}`);
  },
  error => {
    console.log(`An error occurred: ${error}`);
  }
);

Parameters:

  • options (optional):

Options | Description -|- url | The URL to open in the browser. target | The browser identifier to launch. Valid identifier: chrome, chromium, firefox, ie, opera, safari. (Default: chrome.)

Return:

Returns a resolved or rejected promise depending on if the browser had launched successfully.

launchServer & servePlatform Options

The options object passed to launchServer() and servePlatform() supports the following values (all optional):

Options | Description -|- root | The file path on the local file system that is used as the root for the server, for default mapping of URL path to the local file system path. port | The port for the server. Note that if this port is already in use, it will be incremented until a free port is found. router | An ExpressJS router. If provided, this will be attached before default static handling. noLogOutput | If true, all log output will be turned off. noServerInfo | If true, the Static file server running on... message will not be outputed. events | An EventEmitter to use for logging. If provided, logging will be output using events.emit('log', msg). If not provided, console.log() will be used. Note that nothing will be output in either case if noLogOutput is true.