Browse Source

Eliminate eager packages.

This would have been nice to optimize, but we are running into corner cases when trying to merge sharing configurations and making sure all dependency trees of eager packages are also eager.

For now, we’ll revert the changes to make packages eager. This reverts parts of #9312 and #9332.
Jason Grout 4 years ago
parent
commit
ef93e88829
1 changed files with 0 additions and 46 deletions
  1. 0 46
      dev_mode/webpack.config.js

+ 0 - 46
dev_mode/webpack.config.js

@@ -160,43 +160,9 @@ function ignored(path) {
 // Set up module federation sharing config
 const shared = {};
 
-// Core packages and their transitive dependencies are loaded eagerly so they
-// can be bundled more effectively.
-const eagerPackages = new Set();
-
-/**
- * Recursively add pkg and all transitive dependencies to the cache set.
- */
-function transitiveDependencies(pkg, cache) {
-  if (cache.has(pkg)) {
-    return;
-  }
-  cache.add(pkg);
-  // Some packages do interesing things with their exports, so requiring
-  // pkg/package.json does not always work.
-  try {
-    let { dependencies = {} } = require(`${pkg}/package.json`);
-    for (dep of Object.keys(dependencies)) {
-      transitiveDependencies(dep, cache);
-    }
-  } catch (e) {
-    console.log(`Error adding dependencies of ${pkg} to eagerly shared packages`);
-  }
-}
-
-const linkedPackages = Object.keys(jlab.linkedPackages);
-for (pkg of Object.keys(package_data.resolutions)) {
-  if (!linkedPackages.includes(pkg)) {
-    transitiveDependencies(pkg, eagerPackages);
-  }
-}
-
 // Make sure any resolutions are shared
 for (let [pkg, requiredVersion] of Object.entries(package_data.resolutions)) {
   shared[pkg] = { requiredVersion };
-  if (eagerPackages.has(pkg)) {
-    shared[pkg].eager = true;
-  }
 }
 
 // Add any extension packages that are not in resolutions (i.e., installed from npm)
@@ -205,9 +171,6 @@ for (let pkg of extensionPackages) {
     shared[pkg] = {
       requiredVersion: require(`${pkg}/package.json`).version
     };
-    if (eagerPackages.has(pkg)) {
-      shared[pkg].eager = true;
-    }
   }
 }
 
@@ -215,9 +178,7 @@ for (let pkg of extensionPackages) {
 // are not already in the shared config. This means that if there is a
 // conflict, the resolutions package version is the one that is shared.
 const extraShared = [];
-// dependencies of eager shared packages must also be eager.
 for (let pkg of extensionPackages) {
-  let eager = eagerPackages.has(pkg);
   let pkgShared = {};
   let {
     dependencies = {},
@@ -226,13 +187,6 @@ for (let pkg of extensionPackages) {
   for (let [dep, requiredVersion] of Object.entries(dependencies)) {
     if (!shared[dep]) {
       pkgShared[dep] = { requiredVersion };
-      if (eager) {
-        pkgShared[dep].eager = true;
-      }
-    } else if (eager) {
-      // Even if we already have this dependency, make sure it is eager if it
-      // is the dependency of an eager package.
-      shared[dep].eager = true;
     }
   }