From b7f1805ebc54e2fe8cff332a7cfa70c3a7e931a9 Mon Sep 17 00:00:00 2001 From: Keith Cirkel Date: Tue, 14 May 2019 09:29:36 +0100 Subject: [PATCH] [refactor] `sync`: check existence of `node_modules` This brings the same perf improvements as in 4cf89280c7446b396b67c43900b297b6b3e0907a / #190 --- lib/sync.js | 10 ++++++---- test/mock_sync.js | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/sync.js b/lib/sync.js index ce12a6a6..2301f8d1 100644 --- a/lib/sync.js +++ b/lib/sync.js @@ -164,10 +164,12 @@ module.exports = function (x, options) { var dirs = nodeModulesPaths(start, opts, x); for (var i = 0; i < dirs.length; i++) { var dir = dirs[i]; - var m = loadAsFileSync(path.join(dir, '/', x)); - if (m) return m; - var n = loadAsDirectorySync(path.join(dir, '/', x)); - if (n) return n; + if (isDirectory(dir)) { + var m = loadAsFileSync(path.join(dir, '/', x)); + if (m) return m; + var n = loadAsDirectorySync(path.join(dir, '/', x)); + if (n) return n; + } } } }; diff --git a/test/mock_sync.js b/test/mock_sync.js index 907660fd..50812968 100644 --- a/test/mock_sync.js +++ b/test/mock_sync.js @@ -10,6 +10,7 @@ test('mock', function (t) { var dirs = {}; dirs[path.resolve('/foo/bar')] = true; + dirs[path.resolve('/foo/node_modules')] = true; function opts(basedir) { return { @@ -56,6 +57,7 @@ test('mock package', function (t) { var dirs = {}; dirs[path.resolve('/foo')] = true; + dirs[path.resolve('/foo/node_modules')] = true; function opts(basedir) { return {