diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index 1dbd0ed129..2eaca85750 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -89,7 +89,7 @@ export default async function({ cliOptions, babelOptions }) { const stat = fs.statSync(filenameOrDir); - if (stat.isDirectory(filenameOrDir)) { + if (stat.isDirectory()) { const dirname = filenameOrDir; let count = 0; diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index 5d0cdc479e..b2d22a3f77 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -15,11 +15,15 @@ export function readdir( includeDotfiles: boolean, filter: ReaddirFilter, ) { - return readdirRecursive( - dirname, - filename => - (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename)), - ); + return readdirRecursive(dirname, (filename, _index, currentDirectory) => { + const stat = fs.statSync(path.join(currentDirectory, filename)); + + if (stat.isDirectory()) return true; + + return ( + (includeDotfiles || filename[0] !== ".") && (!filter || filter(filename)) + ); + }); } export function readdirForCompilable( diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/bar/bar.js b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/bar/bar.js new file mode 100644 index 0000000000..9e99278492 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/bar/bar.js @@ -0,0 +1 @@ + (() => 42) \ No newline at end of file diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/foo.js new file mode 100644 index 0000000000..4bc9539528 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/options.json b/packages/babel-cli/test/fixtures/babel/dir --out-file/options.json new file mode 100644 index 0000000000..b82e32da5b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--out-file", "test.js"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/out-files/test.js b/packages/babel-cli/test/fixtures/babel/dir --out-file/out-files/test.js new file mode 100644 index 0000000000..d3e579815a --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-file/out-files/test.js @@ -0,0 +1,10 @@ +"use strict"; + +(function () { + return 42; +}); +"use strict"; + +arr.map(function (x) { + return x * MULTIPLIER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-file/stdout.txt b/packages/babel-cli/test/fixtures/babel/dir --out-file/stdout.txt new file mode 100644 index 0000000000..e69de29bb2