diff --git a/packages/@vue/cli-service/lib/commands/serve.js b/packages/@vue/cli-service/lib/commands/serve.js index 6d4c274576..2b7dbfb801 100644 --- a/packages/@vue/cli-service/lib/commands/serve.js +++ b/packages/@vue/cli-service/lib/commands/serve.js @@ -19,6 +19,7 @@ module.exports = (api, options) => { options: { '--open': `open browser on server start`, '--copy': `copy url to clipboard on server start`, + '--stdin': `close when stdin ends`, '--mode': `specify env mode (default: development)`, '--host': `specify host (default: ${defaults.host})`, '--port': `specify port (default: ${defaults.port})`, @@ -204,6 +205,16 @@ module.exports = (api, options) => { }) }) + if (args.stdin) { + process.stdin.on('end', () => { + server.close(() => { + process.exit(0) + }) + }) + + process.stdin.resume() + } + // on appveyor, killing the process with SIGTERM causes execa to // throw error if (process.env.VUE_CLI_TEST) {