From cfb830b5bda0e6112ba47fc32481d03bcc6c3801 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Thu, 22 Feb 2018 18:43:47 -0800 Subject: [PATCH 1/2] Overwrite instead of merging babel-register options. --- packages/babel-register/src/node.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babel-register/src/node.js b/packages/babel-register/src/node.js index a20514f2a1..9e1e351fbc 100644 --- a/packages/babel-register/src/node.js +++ b/packages/babel-register/src/node.js @@ -9,7 +9,7 @@ import fs from "fs"; import path from "path"; const maps = {}; -const transformOpts = {}; +let transformOpts = {}; let piratesRevert = null; function installSourceMapSupport() { @@ -113,9 +113,9 @@ export default function register(opts?: Object = {}) { delete opts.extensions; delete opts.cache; - Object.assign(transformOpts, opts); + transformOpts = Object.assign({}, opts); - if (!transformOpts.ignore && !transformOpts.only) { + if (transformOpts.ignore === undefined && transformOpts.only === undefined) { transformOpts.only = [ // Only compile things inside the current working directory. new RegExp("^" + escapeRegExp(process.cwd()), "i"), From a99e9614a66eb3dc0d005c8362c50f628cf68a34 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Thu, 22 Feb 2018 18:48:36 -0800 Subject: [PATCH 2/2] Resolve the babel-register working directory up front. --- packages/babel-register/src/node.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/babel-register/src/node.js b/packages/babel-register/src/node.js index 9e1e351fbc..9dbdf5d659 100644 --- a/packages/babel-register/src/node.js +++ b/packages/babel-register/src/node.js @@ -115,16 +115,22 @@ export default function register(opts?: Object = {}) { transformOpts = Object.assign({}, opts); + let { cwd = "." } = transformOpts; + + // Ensure that the working directory is resolved up front so that + // things don't break if it changes later. + cwd = transformOpts.cwd = path.resolve(cwd); + if (transformOpts.ignore === undefined && transformOpts.only === undefined) { transformOpts.only = [ // Only compile things inside the current working directory. - new RegExp("^" + escapeRegExp(process.cwd()), "i"), + new RegExp("^" + escapeRegExp(cwd), "i"), ]; transformOpts.ignore = [ // Ignore any node_modules inside the current working directory. new RegExp( "^" + - escapeRegExp(process.cwd()) + + escapeRegExp(cwd) + "(?:" + path.sep + ".*)?" +