From 9865322d4c0c7c00bc407fc59dbda98dee0aa96b Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 28 Jun 2016 11:08:36 -0400 Subject: [PATCH] Compute prodPackageNames lazily. --- tools/isobuild/bundler.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index c67725b690..4274186cd0 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -1890,8 +1890,7 @@ class JsImage { }; if (nmd.local) { - var prodPackageNames = - meteorNpm.getProdPackageNames(nmd.sourcePath); + let prodPackageNames; // When copying a local node_modules directory, ignore any npm // package directories not in the list of production package @@ -1906,8 +1905,15 @@ class JsImage { copyOptions.directoryFilter = function (dir) { var base = files.pathBasename(dir); var parentBase = files.pathBasename(files.pathDirname(dir)); - return parentBase !== "node_modules" || - _.has(prodPackageNames, base); + if (parentBase !== "node_modules") { + return true; + } + + // Compute prodPackageNames lazily. + prodPackageNames = prodPackageNames || + meteorNpm.getProdPackageNames(nmd.sourcePath); + + return _.has(prodPackageNames, base); }; }