From 142a6e375be40a356b5796b70c9b7aa0877d6289 Mon Sep 17 00:00:00 2001 From: Dan Zajdband Date: Sun, 16 Oct 2016 21:49:33 -0400 Subject: [PATCH] Open tab when running next dev (#8) * Open tab when running next dev * Added NEXT_OPEN_BROWSER env var to prevent open a browser tab on next dev * using regexp for testing false on env var * adding ! to if --- bin/next-dev | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/bin/next-dev b/bin/next-dev index 00092666..6e9dc8f5 100755 --- a/bin/next-dev +++ b/bin/next-dev @@ -1,4 +1,5 @@ #!/usr/bin/env node +import { exec } from 'child_process' import { resolve, join } from 'path' import parseArgs from 'minimist' import Server from '../server' @@ -16,6 +17,12 @@ const argv = parseArgs(process.argv.slice(2), { } }) +const open = url => { + const openers = { darwin: 'open', win32: 'start' } + const cmdName = openers[process.platform] || 'xdg-open' + exec(`${cmdName} ${url}`) +} + const dir = resolve(argv._[0] || '.') build(dir) @@ -25,13 +32,17 @@ build(dir) console.log('> Ready on http://localhost:%d', argv.port) // Check if pages dir exists and warn if not - if (!await exists(join(dir, 'pages'))) { + if (!(await exists(join(dir, 'pages')))) { if (await exists(join(dir, '..', 'pages'))) { console.warn('> No `pages` directory found. Did you mean to run `next` in the parent (`../`) directory?') } else { console.warn('> Couldn\'t find a `pages` directory. Please create one under the project root') } } + + if (!/^(false|0)$/i.test(process.env.NEXT_OPEN_BROWSER)) { + open(`http://localhost:${argv.port}`) + } }) .catch((err) => { console.error(err)