Merge pull request #7471 from yakotika/master

added support Node's --require and -r flags in babel-node
This commit is contained in:
Henry Zhu 2018-03-27 14:44:35 -04:00 committed by GitHub
commit 9a26c2b07a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 2 deletions

View File

@ -22,6 +22,7 @@ function collect(value, previousValue): Array<string> {
}
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]",
@ -130,7 +131,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 {
@ -140,6 +145,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)) {

View File

@ -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(flag);
args.push(babelArgs[index + 1]);
delete babelArgs[index + 1];
break;
case "-gc":
args.unshift("--expose-gc");
break;