diff --git a/bin/stencil-start.js b/bin/stencil-start.js index a1447734..e6849a49 100755 --- a/bin/stencil-start.js +++ b/bin/stencil-start.js @@ -19,7 +19,9 @@ program '-n, --no-cache', 'Turns off caching for API resource data per storefront page. The cache lasts for 5 minutes before automatically refreshing.', ) - .option('-t, --timeout', 'Set a timeout for the bundle operation. Default is 20 secs', '60'); + .option('-t, --timeout', 'Set a timeout for the bundle operation. Default is 20 secs', '60') + .option('-p --port [portnumber]', 'Set port number to listen dev server'); + const cliOptions = prepareCommand(program); const options = { open: cliOptions.open, @@ -28,6 +30,7 @@ const options = { apiHost: cliOptions.host, tunnel: cliOptions.tunnel, cache: cliOptions.cache, + port: cliOptions.port, }; const timeout = cliOptions.timeout * 1000; // seconds const buildConfigManager = new BuildConfigManager({ timeout }); diff --git a/lib/stencil-start.js b/lib/stencil-start.js index f323b6dd..bf9dbcca 100755 --- a/lib/stencil-start.js +++ b/lib/stencil-start.js @@ -55,7 +55,14 @@ class StencilStart { if (cliOptions.variation) { await this._themeConfigManager.setVariationByName(cliOptions.variation); } + const initialStencilConfig = await this._stencilConfigManager.read(); + + // Override Port Number if Cli option Exsist + if (cliOptions.port) { + initialStencilConfig.port = cliOptions.port; + } + // Use initial (before updates) port for BrowserSync const browserSyncPort = initialStencilConfig.port; const channelUrl = await this.getChannelUrl(initialStencilConfig, cliOptions);