From 5e95b3df7349832cdea7857cada73ac68fd4c7a4 Mon Sep 17 00:00:00 2001 From: Craig Morris Date: Tue, 29 May 2018 13:59:10 +0100 Subject: [PATCH] feat: add --copy option for vue-cli-service serve (#1355) --- docs/cli-service.md | 1 + docs/cli.md | 1 + packages/@vue/cli-service/lib/commands/serve.js | 8 +++++++- packages/@vue/cli-service/package.json | 1 + packages/@vue/cli/bin/vue.js | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/cli-service.md b/docs/cli-service.md index 7b9aeb538..5be9f71b3 100644 --- a/docs/cli-service.md +++ b/docs/cli-service.md @@ -32,6 +32,7 @@ Usage: vue-cli-service serve [options] Options: --open open browser on server start + --copy copy url to clipboard on server start --mode specify env mode (default: development) --host specify host (default: 0.0.0.0) --port specify port (default: 8080) diff --git a/docs/cli.md b/docs/cli.md index 72731cf2d..fc756b29a 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -174,6 +174,7 @@ serve a .js or .vue file in development mode with zero config Options: -o, --open Open browser + -c, --copy Copy local url to clipboard -h, --help output usage information ``` diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index 2ac7a84ad..31cc10d7e 100644 --- a/packages/@vue/cli-service/lib/commands/serve.js +++ b/packages/@vue/cli-service/lib/commands/serve.js @@ -159,10 +159,16 @@ module.exports = (api, options) => { return } + let copied = '' + if (isFirstCompile && args.copy) { + require('clipboardy').write(urls.localUrlForBrowser) + copied = chalk.dim('(copied to clipboard)') + } + console.log() console.log([ ` App running at:`, - ` - Local: ${chalk.cyan(urls.localUrlForTerminal)}`, + ` - Local: ${chalk.cyan(urls.localUrlForTerminal)} ${copied}`, ` - Network: ${chalk.cyan(urls.lanUrlForTerminal)}` ].join('\n')) console.log() diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index b6e0cddb0..3a83fc399 100644 --- a/packages/@vue/cli-service/package.json +++ b/packages/@vue/cli-service/package.json @@ -31,6 +31,7 @@ "cache-loader": "^1.2.2", "case-sensitive-paths-webpack-plugin": "^2.1.2", "chalk": "^2.4.1", + "clipboardy": "^1.2.3", "cliui": "^4.1.0", "copy-webpack-plugin": "^4.5.1", "css-loader": "^0.28.11", diff --git a/packages/@vue/cli/bin/vue.js b/packages/@vue/cli/bin/vue.js index f8d6c3fb8..d9c5367de 100755 --- a/packages/@vue/cli/bin/vue.js +++ b/packages/@vue/cli/bin/vue.js @@ -82,6 +82,7 @@ program .command('serve [entry]') .description('serve a .js or .vue file in development mode with zero config') .option('-o, --open', 'Open browser') + .option('-c, --copy', 'Copy local url to clipboard') .action((entry, cmd) => { loadCommand('serve', '@vue/cli-service-global').serve(entry, cleanArgs(cmd)) })