From eb010d7dc3b9e15e16a9ea79403e554951dbfeef Mon Sep 17 00:00:00 2001 From: Dan MacTough Date: Wed, 20 Nov 2019 12:12:04 -0500 Subject: [PATCH] Enable setting the host to other than 127.0.0.1 Unblocks being able to run in a docker container --- bin/underreact.js | 10 ++++++++++ commands/start.js | 3 ++- lib/config/__snapshots__/urc.test.js.snap | 5 +++++ lib/config/validate-config.js | 1 + lib/default-underreact.config.js | 1 + lib/utils/get-cli-opts.js | 1 + 6 files changed, 20 insertions(+), 1 deletion(-) diff --git a/bin/underreact.js b/bin/underreact.js index 120301d..75e43e8 100755 --- a/bin/underreact.js +++ b/bin/underreact.js @@ -48,6 +48,15 @@ const configOption = [ } ]; +const hostOption = [ + 'host', + { + description: 'Host', + type: 'string', + default: '127.0.0.1' + } +]; + const portOption = [ 'port', { @@ -104,6 +113,7 @@ yargs function defineStart(y) { y.version(false) .option(...configOption) + .option(...hostOption) .option(...portOption) .option(...modeOption('development')) .option(...statsOption) diff --git a/commands/start.js b/commands/start.js index 5178e71..bb55962 100644 --- a/commands/start.js +++ b/commands/start.js @@ -76,12 +76,13 @@ function watchWebpack(urc) { historyApiFallback: urc.devServerHistoryFallback && { index: urc.siteBasePath }, + host: urc.host, port: urc.port, compress: urc.isProductionMode, hot: urc.hot }); - server.listen(urc.port, '127.0.0.1', () => { + server.listen(urc.port, urc.host, () => { resolve(); return; }); diff --git a/lib/config/__snapshots__/urc.test.js.snap b/lib/config/__snapshots__/urc.test.js.snap index 6d20a1e..c2ef0a3 100644 --- a/lib/config/__snapshots__/urc.test.js.snap +++ b/lib/config/__snapshots__/urc.test.js.snap @@ -13,6 +13,7 @@ Urc { "compileNodeModules": true, "devServerHistoryFallback": false, "environmentVariables": Object {}, + "host": "127.0.0.1", "hot": false, "htmlSource": " @@ -62,6 +63,7 @@ Urc { "compileNodeModules": true, "devServerHistoryFallback": false, "environmentVariables": Object {}, + "host": "127.0.0.1", "hot": false, "htmlSource": " @@ -111,6 +113,7 @@ Urc { "compileNodeModules": true, "devServerHistoryFallback": false, "environmentVariables": Object {}, + "host": "127.0.0.1", "hot": true, "htmlSource": " @@ -160,6 +163,7 @@ Urc { "compileNodeModules": true, "devServerHistoryFallback": false, "environmentVariables": Object {}, + "host": "127.0.0.1", "hot": false, "htmlSource": " @@ -209,6 +213,7 @@ Urc { "compileNodeModules": true, "devServerHistoryFallback": false, "environmentVariables": Object {}, + "host": "127.0.0.1", "hot": false, "htmlSource": " diff --git a/lib/config/validate-config.js b/lib/config/validate-config.js index c963c88..c34d10b 100644 --- a/lib/config/validate-config.js +++ b/lib/config/validate-config.js @@ -12,6 +12,7 @@ function validateConfig(rawConfig = {}) { browserslist: v.oneOfType(v.plainObject, v.arrayOf(v.string)), compileNodeModules: v.oneOfType(v.boolean, v.arrayOf(v.string)), devServerHistoryFallback: v.boolean, + host: v.string, hot: v.boolean, htmlSource: v.oneOfType(validatePromise, v.string, v.func), jsEntry: validateAbsolutePaths, diff --git a/lib/default-underreact.config.js b/lib/default-underreact.config.js index 99136d1..aacfccc 100644 --- a/lib/default-underreact.config.js +++ b/lib/default-underreact.config.js @@ -30,6 +30,7 @@ module.exports = (cliOpts = {}) => { modernBrowserTest: `'fetch' in window && 'assign' in Object`, outputDirectory: path.join(rootDirectory, '_site'), polyfill: path.resolve(underreactRoot, 'polyfill', 'index.js'), + host: cliOpts.host || '127.0.0.1', port: cliOpts.port || 8080, postcssPlugins: [], publicAssetsPath: 'underreact-assets', diff --git a/lib/utils/get-cli-opts.js b/lib/utils/get-cli-opts.js index 53127f1..c8eaec2 100644 --- a/lib/utils/get-cli-opts.js +++ b/lib/utils/get-cli-opts.js @@ -9,6 +9,7 @@ function getCliOpts(command, argv) { configPath: path.resolve(argv.config), mode: argv.mode, stats: argv.stats, + host: argv.host, port: argv.port }; return cliOpts;