From 8317f8ab142192b8829abb7e3189f9590871c04e Mon Sep 17 00:00:00 2001 From: Abu Shamsutdinov Date: Fri, 2 Mar 2018 22:25:13 +0300 Subject: [PATCH 1/2] added support Node's --require and -r flags in babel-node --- packages/babel-node/src/babel-node.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/babel-node/src/babel-node.js b/packages/babel-node/src/babel-node.js index e67c8022c4..5b018f6633 100755 --- a/packages/babel-node/src/babel-node.js +++ b/packages/babel-node/src/babel-node.js @@ -34,7 +34,7 @@ function getNormalizedV8Flag(arg) { } getV8Flags(function(err, v8Flags) { - babelArgs.forEach(function(arg) { + babelArgs.forEach(function(arg, index) { const flag = arg.split("=")[0]; switch (flag) { @@ -50,6 +50,13 @@ getV8Flags(function(err, v8Flags) { args.unshift(arg); break; + case "-r": + case "--require": + args.push(babelArgs[index + 1]); + args.push(flag); + delete babelArgs[index + 1]; + break; + case "-gc": args.unshift("--expose-gc"); break; From da2aea31f5caa17bab005a8d609cfa46ac647ced Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Wed, 14 Mar 2018 13:26:07 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Fix=20=E2=80=94require?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/babel-node/src/_babel-node.js | 16 +++++++++++++++- packages/babel-node/src/babel-node.js | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/babel-node/src/_babel-node.js b/packages/babel-node/src/_babel-node.js index 742b83d3f4..14d097100c 100644 --- a/packages/babel-node/src/_babel-node.js +++ b/packages/babel-node/src/_babel-node.js @@ -23,6 +23,7 @@ function collect(value, previousValue): Array { /* eslint-disable max-len */ program.option("-e, --eval [script]", "Evaluate script"); +program.option("-r, --require [module]", "Require module"); program.option("-p, --print [code]", "Evaluate script and print result"); program.option( "-o, --only [globs]", @@ -132,7 +133,11 @@ if (program.eval || program.print) { if (arg[0] === "-") { const parsedArg = program[arg.slice(2)]; - if (parsedArg && parsedArg !== true) { + if ( + arg === "-r" || + arg === "--require" || + (parsedArg && parsedArg !== true) + ) { ignoreNext = true; } } else { @@ -142,6 +147,15 @@ if (program.eval || program.print) { }); args = args.slice(i); + // We have to handle require ourselfs, as we want to require it in the context of babel-register + if (program.require) { + let requireFileName = program.require; + if (!path.isAbsolute(requireFileName)) { + requireFileName = path.join(process.cwd(), requireFileName); + } + require(requireFileName); + } + // make the filename absolute const filename = args[0]; if (!path.isAbsolute(filename)) { diff --git a/packages/babel-node/src/babel-node.js b/packages/babel-node/src/babel-node.js index 5b018f6633..02c3249262 100755 --- a/packages/babel-node/src/babel-node.js +++ b/packages/babel-node/src/babel-node.js @@ -52,8 +52,8 @@ getV8Flags(function(err, v8Flags) { case "-r": case "--require": - args.push(babelArgs[index + 1]); args.push(flag); + args.push(babelArgs[index + 1]); delete babelArgs[index + 1]; break;