From 53af9e8b7a8a32ff265688d0c918ef8f71002e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Wed, 11 Sep 2019 06:24:44 -0400 Subject: [PATCH] fix: allow the process to exit naturally (#10400) --- packages/babel-cli/src/babel/index.js | 14 +++++++++----- packages/babel-cli/src/babel/options.js | 4 ++-- packages/babel-cli/src/babel/util.js | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/babel-cli/src/babel/index.js b/packages/babel-cli/src/babel/index.js index f319457607..a740bcdeda 100755 --- a/packages/babel-cli/src/babel/index.js +++ b/packages/babel-cli/src/babel/index.js @@ -6,8 +6,12 @@ import fileCommand from "./file"; const opts = parseArgv(process.argv); -const fn = opts.cliOptions.outDir ? dirCommand : fileCommand; -fn(opts).catch(err => { - console.error(err); - process.exit(1); -}); +if (opts) { + const fn = opts.cliOptions.outDir ? dirCommand : fileCommand; + fn(opts).catch(err => { + console.error(err); + process.exitCode = 1; + }); +} else { + process.exitCode = 2; +} diff --git a/packages/babel-cli/src/babel/options.js b/packages/babel-cli/src/babel/options.js index 19ae7bfce8..897c05ba16 100644 --- a/packages/babel-cli/src/babel/options.js +++ b/packages/babel-cli/src/babel/options.js @@ -158,7 +158,7 @@ export type CmdOptions = { cliOptions: Object, }; -export default function parseArgv(args: Array): CmdOptions { +export default function parseArgv(args: Array): CmdOptions | null { // commander.parse(args); @@ -223,7 +223,7 @@ export default function parseArgv(args: Array): CmdOptions { errors.forEach(function(e) { console.error(" " + e); }); - process.exit(2); + return null; } const opts = commander.opts(); diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index daacba53f0..9355c0ff85 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -112,7 +112,7 @@ export function deleteDir(path: string): void { process.on("uncaughtException", function(err) { console.error(err); - process.exit(1); + process.exitCode = 1; }); export function requireChokidar(): Object {