From 2c1499596680be6daf158334f4146b80592ed4be Mon Sep 17 00:00:00 2001 From: Devon Govett Date: Mon, 22 Oct 2018 07:22:37 -0700 Subject: [PATCH] Add --host option (#2181) Closes #1482. --- packages/core/parcel-bundler/src/Bundler.js | 5 +++-- packages/core/parcel-bundler/src/Server.js | 9 ++++++--- packages/core/parcel-bundler/src/cli.js | 10 +++++++++- .../parcel-bundler/src/utils/generateCertificate.js | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/core/parcel-bundler/src/Bundler.js b/packages/core/parcel-bundler/src/Bundler.js index b71882cde3a..d577f4654fe 100644 --- a/packages/core/parcel-bundler/src/Bundler.js +++ b/packages/core/parcel-bundler/src/Bundler.js @@ -131,6 +131,7 @@ class Bundler extends EventEmitter { !scopeHoist, hmrHostname: options.hmrHostname || + options.host || (options.target === 'electron' ? 'localhost' : ''), detailedReport: options.detailedReport || false, global: options.global, @@ -776,8 +777,8 @@ class Bundler extends EventEmitter { return Server.middleware(this); } - async serve(port = 1234, https = false) { - this.server = await Server.serve(this, port, https); + async serve(port = 1234, https = false, host) { + this.server = await Server.serve(this, port, host, https); try { await this.bundle(); } catch (e) { diff --git a/packages/core/parcel-bundler/src/Server.js b/packages/core/parcel-bundler/src/Server.js index 0908c6cf2ee..bba8c0cd54f 100644 --- a/packages/core/parcel-bundler/src/Server.js +++ b/packages/core/parcel-bundler/src/Server.js @@ -110,7 +110,7 @@ function middleware(bundler) { }; } -async function serve(bundler, port, useHTTPS = false) { +async function serve(bundler, port, host, useHTTPS = false) { let handler = middleware(bundler); let server; if (!useHTTPS) { @@ -122,10 +122,11 @@ async function serve(bundler, port, useHTTPS = false) { } let freePort = await getPort({port}); - server.listen(freePort); + server.listen(freePort, host); return new Promise((resolve, reject) => { server.on('error', err => { + console.log(err); logger.error(new Error(serverErrors(err, server.address().port))); reject(err); }); @@ -140,7 +141,9 @@ async function serve(bundler, port, useHTTPS = false) { logger.persistent( `Server running at ${logger.chalk.cyan( - `${useHTTPS ? 'https' : 'http'}://localhost:${server.address().port}` + `${useHTTPS ? 'https' : 'http'}://${host || 'localhost'}:${ + server.address().port + }` )} ${addon}` ); diff --git a/packages/core/parcel-bundler/src/cli.js b/packages/core/parcel-bundler/src/cli.js index ee04cb97a6c..6fd3f2eb098 100755 --- a/packages/core/parcel-bundler/src/cli.js +++ b/packages/core/parcel-bundler/src/cli.js @@ -13,6 +13,10 @@ program 'set the port to serve on. defaults to 1234', parseInt ) + .option( + '--host ', + 'set the host to listen on, defaults to listening on all interfaces' + ) .option( '--hmr-port ', 'set the port to serve HMR websockets, defaults to random', @@ -214,7 +218,11 @@ async function bundle(main, command) { command.target = command.target || 'browser'; if (command.name() === 'serve' && command.target === 'browser') { - const server = await bundler.serve(command.port || 1234, command.https); + const server = await bundler.serve( + command.port || 1234, + command.https, + command.host + ); if (server && command.open) { await require('./utils/openInBrowser')( `${command.https ? 'https' : 'http'}://localhost:${ diff --git a/packages/core/parcel-bundler/src/utils/generateCertificate.js b/packages/core/parcel-bundler/src/utils/generateCertificate.js index d364f427f40..ecebc0e20fb 100644 --- a/packages/core/parcel-bundler/src/utils/generateCertificate.js +++ b/packages/core/parcel-bundler/src/utils/generateCertificate.js @@ -20,7 +20,7 @@ function generateCertificate(options = {}) { } } - logger.log('Generating SSL Certificate...'); + logger.progress('Generating SSL Certificate...'); const pki = forge.pki; const keys = pki.rsa.generateKeyPair(2048);