From 50b9fbb57073877e733714843fe9ab4765751687 Mon Sep 17 00:00:00 2001 From: Raja Sekar Date: Tue, 13 Feb 2018 11:54:19 +0530 Subject: [PATCH] empty src dir error fix - fixes #7375 --- packages/babel-cli/src/babel/dir.js | 12 ++++++++++++ .../babel/empty dir --out-dir/in-files/src/.gitkeep | 0 .../fixtures/babel/empty dir --out-dir/options.json | 3 +++ .../babel/empty dir --out-dir/out-files/src/.gitkeep | 0 .../fixtures/babel/empty dir --out-dir/stdout.txt | 0 5 files changed, 15 insertions(+) create mode 100644 packages/babel-cli/test/fixtures/babel/empty dir --out-dir/in-files/src/.gitkeep create mode 100644 packages/babel-cli/test/fixtures/babel/empty dir --out-dir/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/empty dir --out-dir/out-files/src/.gitkeep create mode 100644 packages/babel-cli/test/fixtures/babel/empty dir --out-dir/stdout.txt diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index 31c80fbb62..28b2f5bd3c 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -63,6 +63,13 @@ export default function(commander, filenames, opts) { return path.join(commander.outDir, filename); } + function outputDestFolder(outDir) { + const outDirPath = path.resolve(outDir); + if (!fs.existsSync(outDirPath)) { + fs.mkdirSync(outDirPath); + } + } + function handleFile(src, filename, base, callback) { if (typeof base === "function") { callback = base; @@ -82,6 +89,11 @@ export default function(commander, filenames, opts) { } function sequentialHandleFile(files, dirname, index, callback) { + if (files.length === 0) { + outputDestFolder(commander.outDir); + return; + } + if (typeof index === "function") { callback = index; index = 0; diff --git a/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/in-files/src/.gitkeep b/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/in-files/src/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/options.json b/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/options.json new file mode 100644 index 0000000000..0aeb1496b7 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--out-dir", "lib"] +} diff --git a/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/out-files/src/.gitkeep b/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/out-files/src/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/stdout.txt b/packages/babel-cli/test/fixtures/babel/empty dir --out-dir/stdout.txt new file mode 100644 index 0000000000..e69de29bb2