|
@@ -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;
|
|
|
}
|
|
|
}
|
|
|
|