From 54da5244672a322462c4e9e95c00a51f9f579db1 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 30 Aug 2018 19:46:14 -0400 Subject: [PATCH] implement --dev-port flag - fixes #381 --- src/api/dev.ts | 15 ++++++++++----- src/cli.ts | 4 +++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/api/dev.ts b/src/api/dev.ts index 301a5e7..3813fe8 100644 --- a/src/api/dev.ts +++ b/src/api/dev.ts @@ -29,6 +29,8 @@ class Watcher extends EventEmitter { } port: number; closed: boolean; + + dev_port: number; live: boolean; hot: boolean; @@ -50,6 +52,7 @@ class Watcher extends EventEmitter { app = locations.app(), dest = locations.dest(), routes = locations.routes(), + 'dev-port': dev_port, live, hot, bundler, @@ -60,6 +63,7 @@ class Watcher extends EventEmitter { app: string, dest: string, routes: string, + 'dev-port': number, live: boolean, hot: boolean, bundler?: string, @@ -74,6 +78,7 @@ class Watcher extends EventEmitter { this.port = port; this.closed = false; + this.dev_port = dev_port; this.live = live; this.hot = hot; @@ -120,11 +125,11 @@ class Watcher extends EventEmitter { mkdirp.sync(`${dest}/client`); if (this.bundler === 'rollup') copy_shimport(dest); - const dev_port = await ports.find(10000); + if (!this.dev_port) this.dev_port = await ports.find(10000); try { const routes = create_routes(); - create_main_manifests({ routes, dev_port }); + create_main_manifests({ routes, dev_port: this.dev_port }); } catch (err) { this.emit('fatal', { message: err.message @@ -132,7 +137,7 @@ class Watcher extends EventEmitter { return; } - this.dev_server = new DevServer(dev_port); + this.dev_server = new DevServer(this.dev_port); this.filewatchers.push( watch_dir( @@ -145,11 +150,11 @@ class Watcher extends EventEmitter { }, () => { const routes = create_routes(); - create_main_manifests({ routes, dev_port }); + create_main_manifests({ routes, dev_port: this.dev_port }); try { const routes = create_routes(); - create_main_manifests({ routes, dev_port }); + create_main_manifests({ routes, dev_port: this.dev_port }); } catch (err) { this.emit('error', { message: err.message diff --git a/src/cli.ts b/src/cli.ts index f390f0d..41a208e 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -11,12 +11,14 @@ prog.command('dev') .describe('Start a development server') .option('-p, --port', 'Specify a port') .option('-o, --open', 'Open a browser window') + .option('--dev-port', 'Specify a port for development server') .option('--hot', 'Use hot module replacement (requires webpack)', true) - .option('-l --live', 'Reload on changes if not using --hot', true) + .option('--live', 'Reload on changes if not using --hot', true) .option('--bundler', 'Specify a bundler (rollup or webpack)') .action(async (opts: { port: number, open: boolean, + 'dev-port': number, live: boolean, hot: boolean, bundler?: string