From b6467a68caaec76c0635c7ea57040320ab6244c5 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Sun, 10 Sep 2017 02:38:06 +0200 Subject: [PATCH] Add option to define output directory relative to the input (#5421) * Fix output directory if filename is given * Add test for relative output path * Add option to define output dir relative to input * Add tests for --copy-files * Test error handling for wrong arguments --- packages/babel-cli/src/babel/dir.js | 19 ++++++++++++------- packages/babel-cli/src/babel/index.js | 8 ++++++++ .../in-files/src/bar.json | 1 + .../in-files/src/foo.js | 1 + .../dir --out-dir --copy-files/options.json | 3 +++ .../out-files/lib/bar.json | 1 + .../out-files/lib/foo.js | 5 +++++ .../dir --out-dir --copy-files/stdout.txt | 1 + .../in-files/package1/src/bar/bar1.js | 3 +++ .../in-files/package1/src/foo1.js | 1 + .../in-files/package2/src/bar/bar2.js | 3 +++ .../in-files/package2/src/foo2.js | 1 + .../dir --out-dir --relative/options.json | 3 +++ .../out-files/package1/lib/bar/bar1.js | 7 +++++++ .../out-files/package1/lib/foo1.js | 5 +++++ .../out-files/package2/lib/bar/bar2.js | 7 +++++++ .../out-files/package2/lib/foo2.js | 5 +++++ .../babel/dir --out-dir --relative/stdout.txt | 4 ++++ .../error --out-dir --out-file/options.json | 4 ++++ .../error --out-dir --out-file/stderr.txt | 1 + .../babel/error --out-dir/options.json | 4 ++++ .../fixtures/babel/error --out-dir/stderr.txt | 1 + .../babel/error --relative/options.json | 4 ++++ .../babel/error --relative/stderr.txt | 1 + .../error --skip-initial-build/options.json | 4 ++++ .../error --skip-initial-build/stderr.txt | 1 + .../error --watch no filename/options.json | 4 ++++ .../error --watch no filename/stderr.txt | 1 + .../fixtures/babel/error --watch/options.json | 4 ++++ .../fixtures/babel/error --watch/stderr.txt | 1 + .../babel/error wrong filename/options.json | 4 ++++ .../babel/error wrong filename/stderr.txt | 1 + .../in-files/src/foo.js | 1 + .../options.json | 3 +++ .../out-files/lib/foo.js | 5 +++++ .../filename --out-dir --relative/stdout.txt | 1 + .../filename --out-dir/in-files/src/foo.js | 1 + .../babel/filename --out-dir/options.json | 3 +++ .../filename --out-dir/out-files/lib/foo.js | 5 +++++ .../babel/filename --out-dir/stdout.txt | 1 + .../babel-core/src/config/option-manager.js | 1 + 41 files changed, 127 insertions(+), 7 deletions(-) create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/bar.json create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/foo.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/bar.json create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/foo.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/stdout.txt create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/bar/bar1.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/foo1.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/bar/bar2.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/foo2.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/bar/bar1.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/foo1.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/bar/bar2.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/foo2.js create mode 100644 packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/stdout.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error --out-dir/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error --relative/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error --skip-initial-build/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error --skip-initial-build/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error --watch no filename/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error --watch no filename/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error --watch/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error --watch/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/error wrong filename/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/in-files/src/foo.js create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/out-files/lib/foo.js create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/stdout.txt create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir/in-files/src/foo.js create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir/options.json create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir/out-files/lib/foo.js create mode 100644 packages/babel-cli/test/fixtures/babel/filename --out-dir/stdout.txt diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index cc643cb882..4ecd17cfc8 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -7,7 +7,7 @@ import fs from "fs"; import * as util from "./util"; export default function(commander, filenames, opts) { - function write(src, relative) { + function write(src, relative, base) { if (!util.isCompilableExtension(relative, commander.extensions)) { return false; } @@ -15,7 +15,7 @@ export default function(commander, filenames, opts) { // remove extension and then append back on .js relative = relative.replace(/\.(\w*?)$/, "") + ".js"; - const dest = path.join(commander.outDir, relative); + const dest = getDest(commander, relative, base); const data = util.compile( src, @@ -45,11 +45,16 @@ export default function(commander, filenames, opts) { return true; } - function handleFile(src, filename) { - const didWrite = write(src, filename); + function getDest(commander, filename, base) { + if (commander.relative) return path.join(base, commander.outDir, filename); + return path.join(commander.outDir, filename); + } + + function handleFile(src, filename, base) { + const didWrite = write(src, filename, base); if (!didWrite && commander.copyFiles) { - const dest = path.join(commander.outDir, filename); + const dest = getDest(commander, filename, base); outputFileSync(dest, fs.readFileSync(src)); util.chmod(src, dest); } @@ -68,10 +73,10 @@ export default function(commander, filenames, opts) { } util.readdir(dirname).forEach(function(filename) { const src = path.join(dirname, filename); - handleFile(src, filename); + handleFile(src, filename, dirname); }); } else { - write(filename, filename); + write(filename, path.basename(filename), path.dirname(filename)); } } diff --git a/packages/babel-cli/src/babel/index.js b/packages/babel-cli/src/babel/index.js index c77779c51b..76c8208fd3 100755 --- a/packages/babel-cli/src/babel/index.js +++ b/packages/babel-cli/src/babel/index.js @@ -142,6 +142,10 @@ commander.option( "-d, --out-dir [out]", "Compile an input directory of modules into an output directory", ); +commander.option( + "--relative", + "Compile into an output directory relative to input directory or file. Requires --out-dir [out]", +); commander.option( "-D, --copy-files", "When compiling a directory copy over non-compilable files", @@ -183,6 +187,10 @@ if (commander.outFile && commander.outDir) { errors.push("cannot have --out-file and --out-dir"); } +if (commander.relative && !commander.outDir) { + errors.push("output directory required for --relative"); +} + if (commander.watch) { if (!commander.outFile && !commander.outDir) { errors.push("--watch requires --out-file or --out-dir"); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/bar.json b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/bar.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/bar.json @@ -0,0 +1 @@ +{} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/foo.js new file mode 100644 index 0000000000..4bc9539528 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/options.json b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/options.json new file mode 100644 index 0000000000..68814a2001 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src", "--out-dir", "lib", "--copy-files"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/bar.json b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/bar.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/bar.json @@ -0,0 +1 @@ +{} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/foo.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/foo.js new file mode 100644 index 0000000000..ae4557e57b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/out-files/lib/foo.js @@ -0,0 +1,5 @@ +"use strict"; + +arr.map(function (x) { + return x * MULTIPLIER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/stdout.txt b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/stdout.txt new file mode 100644 index 0000000000..6ef9b7ad4d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --copy-files/stdout.txt @@ -0,0 +1 @@ +src/foo.js -> lib/foo.js diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/bar/bar1.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/bar/bar1.js new file mode 100644 index 0000000000..499fafc8d7 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/bar/bar1.js @@ -0,0 +1,3 @@ +class Test1 { + +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/foo1.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/foo1.js new file mode 100644 index 0000000000..4bc9539528 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package1/src/foo1.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/bar/bar2.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/bar/bar2.js new file mode 100644 index 0000000000..2b6480cee8 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/bar/bar2.js @@ -0,0 +1,3 @@ +class Test2 { + +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/foo2.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/foo2.js new file mode 100644 index 0000000000..7c1178b8d6 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/in-files/package2/src/foo2.js @@ -0,0 +1 @@ +arr.map(x => x / DIVIDER); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/options.json b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/options.json new file mode 100644 index 0000000000..a05b1cfc2e --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/options.json @@ -0,0 +1,3 @@ +{ + "args": ["**/src", "--out-dir", "../lib", "--relative"] +} diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/bar/bar1.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/bar/bar1.js new file mode 100644 index 0000000000..c48fccce8a --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/bar/bar1.js @@ -0,0 +1,7 @@ +"use strict"; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Test1 = function Test1() { + _classCallCheck(this, Test1); +}; diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/foo1.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/foo1.js new file mode 100644 index 0000000000..ae4557e57b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package1/lib/foo1.js @@ -0,0 +1,5 @@ +"use strict"; + +arr.map(function (x) { + return x * MULTIPLIER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/bar/bar2.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/bar/bar2.js new file mode 100644 index 0000000000..f77e96ef60 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/bar/bar2.js @@ -0,0 +1,7 @@ +"use strict"; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Test2 = function Test2() { + _classCallCheck(this, Test2); +}; diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/foo2.js b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/foo2.js new file mode 100644 index 0000000000..5d02843681 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/out-files/package2/lib/foo2.js @@ -0,0 +1,5 @@ +"use strict"; + +arr.map(function (x) { + return x / DIVIDER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/stdout.txt b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/stdout.txt new file mode 100644 index 0000000000..8215dd3c4c --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/dir --out-dir --relative/stdout.txt @@ -0,0 +1,4 @@ +package1/src/bar/bar1.js -> package1/lib/bar/bar1.js +package1/src/foo1.js -> package1/lib/foo1.js +package2/src/bar/bar2.js -> package2/lib/bar/bar2.js +package2/src/foo2.js -> package2/lib/foo2.js diff --git a/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/options.json b/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/options.json new file mode 100644 index 0000000000..9e03e7b617 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/options.json @@ -0,0 +1,4 @@ +{ + "args": ["--out-dir", "lib"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt new file mode 100644 index 0000000000..d873bfee65 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --out-dir --out-file/stderr.txt @@ -0,0 +1 @@ +filenames required for --out-dir diff --git a/packages/babel-cli/test/fixtures/babel/error --out-dir/options.json b/packages/babel-cli/test/fixtures/babel/error --out-dir/options.json new file mode 100644 index 0000000000..f6c424b93c --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --out-dir/options.json @@ -0,0 +1,4 @@ +{ + "args": ["--out-dir", "lib", "--out-file", "foo.js"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt new file mode 100644 index 0000000000..ad905db42d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --out-dir/stderr.txt @@ -0,0 +1 @@ +cannot have --out-file and --out-dir diff --git a/packages/babel-cli/test/fixtures/babel/error --relative/options.json b/packages/babel-cli/test/fixtures/babel/error --relative/options.json new file mode 100644 index 0000000000..1901c571c5 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --relative/options.json @@ -0,0 +1,4 @@ +{ + "args": ["--relative"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt new file mode 100644 index 0000000000..ae7f59e27e --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --relative/stderr.txt @@ -0,0 +1 @@ +output directory required for --relative diff --git a/packages/babel-cli/test/fixtures/babel/error --skip-initial-build/options.json b/packages/babel-cli/test/fixtures/babel/error --skip-initial-build/options.json new file mode 100644 index 0000000000..beb324cd6a --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --skip-initial-build/options.json @@ -0,0 +1,4 @@ +{ + "args": ["--skip-initial-build"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error --skip-initial-build/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --skip-initial-build/stderr.txt new file mode 100644 index 0000000000..d97511e804 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --skip-initial-build/stderr.txt @@ -0,0 +1 @@ +--skip-initial-build requires --watch diff --git a/packages/babel-cli/test/fixtures/babel/error --watch no filename/options.json b/packages/babel-cli/test/fixtures/babel/error --watch no filename/options.json new file mode 100644 index 0000000000..2a903b5d58 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --watch no filename/options.json @@ -0,0 +1,4 @@ +{ + "args": ["--watch"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error --watch no filename/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --watch no filename/stderr.txt new file mode 100644 index 0000000000..3792c97686 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --watch no filename/stderr.txt @@ -0,0 +1 @@ +--watch requires filenames diff --git a/packages/babel-cli/test/fixtures/babel/error --watch/options.json b/packages/babel-cli/test/fixtures/babel/error --watch/options.json new file mode 100644 index 0000000000..2a903b5d58 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --watch/options.json @@ -0,0 +1,4 @@ +{ + "args": ["--watch"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error --watch/stderr.txt b/packages/babel-cli/test/fixtures/babel/error --watch/stderr.txt new file mode 100644 index 0000000000..7c5fd5452d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error --watch/stderr.txt @@ -0,0 +1 @@ +--watch requires --out-file or --out-dir diff --git a/packages/babel-cli/test/fixtures/babel/error wrong filename/options.json b/packages/babel-cli/test/fixtures/babel/error wrong filename/options.json new file mode 100644 index 0000000000..1a89e7353e --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error wrong filename/options.json @@ -0,0 +1,4 @@ +{ + "args": ["foo.json"], + "stderrContains": true +} diff --git a/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt b/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt new file mode 100644 index 0000000000..125378c05d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/error wrong filename/stderr.txt @@ -0,0 +1 @@ +foo.json doesn't exist diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/in-files/src/foo.js new file mode 100644 index 0000000000..4bc9539528 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/options.json b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/options.json new file mode 100644 index 0000000000..c583027328 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src/foo.js", "--out-dir", "../lib", "--relative"] +} diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/out-files/lib/foo.js b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/out-files/lib/foo.js new file mode 100644 index 0000000000..ae4557e57b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/out-files/lib/foo.js @@ -0,0 +1,5 @@ +"use strict"; + +arr.map(function (x) { + return x * MULTIPLIER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/stdout.txt b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/stdout.txt new file mode 100644 index 0000000000..6ef9b7ad4d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir --relative/stdout.txt @@ -0,0 +1 @@ +src/foo.js -> lib/foo.js diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir/in-files/src/foo.js b/packages/babel-cli/test/fixtures/babel/filename --out-dir/in-files/src/foo.js new file mode 100644 index 0000000000..4bc9539528 --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir/in-files/src/foo.js @@ -0,0 +1 @@ +arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir/options.json b/packages/babel-cli/test/fixtures/babel/filename --out-dir/options.json new file mode 100644 index 0000000000..bd4747099a --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir/options.json @@ -0,0 +1,3 @@ +{ + "args": ["src/foo.js", "--out-dir", "lib"] +} diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir/out-files/lib/foo.js b/packages/babel-cli/test/fixtures/babel/filename --out-dir/out-files/lib/foo.js new file mode 100644 index 0000000000..ae4557e57b --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir/out-files/lib/foo.js @@ -0,0 +1,5 @@ +"use strict"; + +arr.map(function (x) { + return x * MULTIPLIER; +}); diff --git a/packages/babel-cli/test/fixtures/babel/filename --out-dir/stdout.txt b/packages/babel-cli/test/fixtures/babel/filename --out-dir/stdout.txt new file mode 100644 index 0000000000..6ef9b7ad4d --- /dev/null +++ b/packages/babel-cli/test/fixtures/babel/filename --out-dir/stdout.txt @@ -0,0 +1 @@ +src/foo.js -> lib/foo.js diff --git a/packages/babel-core/src/config/option-manager.js b/packages/babel-core/src/config/option-manager.js index 538bb98b98..1d1f1a79b4 100644 --- a/packages/babel-core/src/config/option-manager.js +++ b/packages/babel-core/src/config/option-manager.js @@ -25,6 +25,7 @@ type MergeOptions = { }; const optionNames = new Set([ + "relative", "filename", "filenameRelative", "inputSourceMap",