From 160de340b07184af257f7d17ff597f467b893cdd Mon Sep 17 00:00:00 2001 From: Ondrej Kraus Date: Thu, 5 Mar 2015 14:19:26 +0100 Subject: [PATCH] add possiblity of passing user arguments by separating them with -- Now, when user arguments have names colliding with node arguments, they can be separated by -- and will be parsed correctly. --- bin/babel-node | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/bin/babel-node b/bin/babel-node index 99344fc9f4..b847618714 100755 --- a/bin/babel-node +++ b/bin/babel-node @@ -1,5 +1,7 @@ #!/usr/bin/env node +var indexOf = require("lodash/array/indexOf"); + /** * This tiny wrapper file checks for known node flags and appends them * when found, before invoking the "real" _babel-node(1) executable. @@ -7,7 +9,17 @@ var args = [__dirname + "/_babel-node"]; -process.argv.slice(2).forEach(function(arg){ +var babelArgs = process.argv.slice(2); +var userArgs; + +// separate node arguments from script arguments +var argSeparator = indexOf(babelArgs, "--"); +if (argSeparator > -1) { + userArgs = babelArgs.slice(argSeparator); // including the -- + babelArgs = babelArgs.slice(0, argSeparator); +} + +babelArgs.forEach(function(arg){ var flag = arg.split("=")[0]; switch (flag) { @@ -49,6 +61,11 @@ process.argv.slice(2).forEach(function(arg){ } }); +// append arguments passed after -- +if (argSeparator > -1) { + args = args.concat(userArgs); +} + try { var kexec = require("kexec"); kexec(process.argv[0], args);