From 4c7bd9c507fce5af81a7dbadd1454482cbc3ec44 Mon Sep 17 00:00:00 2001 From: Ricardo Gobbo de Souza Date: Tue, 5 Feb 2019 19:37:59 -0200 Subject: [PATCH] feat(cli): option to open the project in the browser (#4930) --- packages/cli/package.json | 1 + packages/cli/src/commands/dev.js | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index a541a8685f..d19833d213 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -19,6 +19,7 @@ "esm": "^3.2.0", "execa": "^1.0.0", "minimist": "^1.2.0", + "opener": "1.5.1", "pretty-bytes": "^5.1.0", "std-env": "^2.2.1", "wrap-ansi": "^4.0.0" diff --git a/packages/cli/src/commands/dev.js b/packages/cli/src/commands/dev.js index e0738c751a..0ef00946a7 100644 --- a/packages/cli/src/commands/dev.js +++ b/packages/cli/src/commands/dev.js @@ -1,5 +1,6 @@ import consola from 'consola' import chalk from 'chalk' +import opener from 'opener' import { common, server } from '../options' import { showBanner, eventsMapping, formatPath } from '../utils' @@ -9,17 +10,31 @@ export default { usage: 'dev ', options: { ...common, - ...server + ...server, + open: { + alias: 'o', + type: 'boolean', + description: 'Opens the server listeners url in the default browser' + } }, async run(cmd) { const { argv } = cmd - await this.startDev(cmd, argv) + const nuxt = await this.startDev(cmd, argv) + + // Opens the server listeners url in the default browser + if (argv.open) { + for (const listener of nuxt.server.listeners) { + await opener(listener.url) + } + } }, async startDev(cmd, argv) { try { - await this._startDev(cmd, argv) + const nuxt = await this._startDev(cmd, argv) + + return nuxt } catch (error) { consola.error(error) }