From ce2779c3e0080ea0e78480cee7ddb25d0c37e2f5 Mon Sep 17 00:00:00 2001 From: Craig Morris Date: Wed, 23 May 2018 11:44:08 +0100 Subject: [PATCH 1/5] feat(serve): add copy option when serving --- docs/cli-service.md | 1 + docs/cli.md | 1 + packages/@vue/cli-service/lib/options.js | 1 + packages/@vue/cli-service/package.json | 1 + packages/@vue/cli/bin/vue.js | 1 + 5 files changed, 5 insertions(+) diff --git a/docs/cli-service.md b/docs/cli-service.md index 7b9aeb5388..5be9f71b3a 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 72731cf2de..fc756b29ab 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/options.js b/packages/@vue/cli-service/lib/options.js index 2bcc422953..716be316a0 100644 --- a/packages/@vue/cli-service/lib/options.js +++ b/packages/@vue/cli-service/lib/options.js @@ -84,6 +84,7 @@ exports.defaults = () => ({ devServer: { /* open: process.platform === 'darwin', + copy: false, host: '0.0.0.0', port: 8080, https: false, diff --git a/packages/@vue/cli-service/package.json b/packages/@vue/cli-service/package.json index b6e0cddb03..3a83fc399a 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 f8d6c3fb88..d9c5367deb 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)) }) From c5604aa0b5a5338bdb04aa59942465779bc55e0a Mon Sep 17 00:00:00 2001 From: Craig Morris Date: Wed, 23 May 2018 11:55:32 +0100 Subject: [PATCH 2/5] feat(serve): Add output to indicate copied --- packages/@vue/cli-service/lib/commands/serve.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index 2ac7a84ada..2a9145dd9d 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 || projectDevServerOptions.copy)) { + clipboardy.write(urls.localUrlForBrowser) + copied = chalk.dim('(copied!)') + } + 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() From 323567df2712915d0a7caa1fa0656b593021865b Mon Sep 17 00:00:00 2001 From: Craig Morris Date: Tue, 29 May 2018 09:45:03 +0100 Subject: [PATCH 3/5] fix(serve): lazy load clipboardy and rm webpack dev server copy option --- packages/@vue/cli-service/lib/commands/serve.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index 2a9145dd9d..57c53506ed 100644 --- a/packages/@vue/cli-service/lib/commands/serve.js +++ b/packages/@vue/cli-service/lib/commands/serve.js @@ -160,8 +160,8 @@ module.exports = (api, options) => { } let copied = '' - if (isFirstCompile && (args.copy || projectDevServerOptions.copy)) { - clipboardy.write(urls.localUrlForBrowser) + if (isFirstCompile && args.copy) { + require('clipboardy').write(urls.localUrlForBrowser) copied = chalk.dim('(copied!)') } From 0c7d82cb0d080de0ccfe74409d3f7ad6acc6aac6 Mon Sep 17 00:00:00 2001 From: Craig Morris Date: Tue, 29 May 2018 09:47:26 +0100 Subject: [PATCH 4/5] fix(serve): Remove unused option --- packages/@vue/cli-service/lib/options.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/@vue/cli-service/lib/options.js b/packages/@vue/cli-service/lib/options.js index 716be316a0..2bcc422953 100644 --- a/packages/@vue/cli-service/lib/options.js +++ b/packages/@vue/cli-service/lib/options.js @@ -84,7 +84,6 @@ exports.defaults = () => ({ devServer: { /* open: process.platform === 'darwin', - copy: false, host: '0.0.0.0', port: 8080, https: false, From a694868d6ec5f9bb2d9ac7153ab9ef6d133e719a Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 29 May 2018 08:58:20 -0400 Subject: [PATCH 5/5] Update serve.js --- packages/@vue/cli-service/lib/commands/serve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index 57c53506ed..31cc10d7ea 100644 --- a/packages/@vue/cli-service/lib/commands/serve.js +++ b/packages/@vue/cli-service/lib/commands/serve.js @@ -162,7 +162,7 @@ module.exports = (api, options) => { let copied = '' if (isFirstCompile && args.copy) { require('clipboardy').write(urls.localUrlForBrowser) - copied = chalk.dim('(copied!)') + copied = chalk.dim('(copied to clipboard)') } console.log()