constructor(options) {
    this.hostname = options.hostname;
    this.port = options.port;
    this.packagerPort = options.packagerPort;
    this.webpackPort = options.webpackPort;
    this.entries = {
      android: options.androidEntry,
      ios: options.iosEntry,
    };
    this.platforms = options.platforms;
    this.projectRoots = options.projectRoots;
    this.additionalRoots = options.root;
    this.assetRoots = options.assetRoots;
    this.resetCache = !!options.resetCache;
    this.hot = !!options.hot;
    this.webpackConfig = options.webpackConfig;
    this.hasteExternals = options.hasteExternals;

    // Check for local react-native.
    try {
      require.resolve('react-native');
    } catch (err) {
      throw new Error('Could not find react-native. Try `npm install react-native`.');
    }

    // Construct resource URLs up-front
    this.webpackBaseURL = url.format({
      protocol: 'http',
      hostname: this.hostname,
      port: this.webpackPort,
    });
    this.packagerBaseURL = url.format({
      protocol: 'http',
      hostname: this.hostname,
      port: this.packagerPort,
    });
  }
Create a new server with the following options:
@param {String}  hostname
@param {Number}  port
@param {Number}  packagerPort
@param {Number}  webpackPort
@param {Boolean} android       Enable Android support
@param {Boolean} ios           Enable iOS support
@param {String}  androidEntry
@param {String}  iosEntry
@param {Object}  webpackConfig The webpack config to use for webpack-dev-server
@param {Boolean} hot           Enable hot module replacement
@param {Boolean} hasteExternals Enable direct import of Haste modules via webpack externals

@constructor
@param {Object} options