@vercel/microfrontends 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/bin/cli.cjs +107 -26
- package/dist/experimental/sveltekit.cjs +83 -1
- package/dist/experimental/sveltekit.cjs.map +1 -1
- package/dist/experimental/sveltekit.js +83 -1
- package/dist/experimental/sveltekit.js.map +1 -1
- package/dist/experimental/vite.cjs +105 -25
- package/dist/experimental/vite.cjs.map +1 -1
- package/dist/experimental/vite.js +105 -25
- package/dist/experimental/vite.js.map +1 -1
- package/dist/microfrontends/server.cjs +105 -25
- package/dist/microfrontends/server.cjs.map +1 -1
- package/dist/microfrontends/server.js +105 -25
- package/dist/microfrontends/server.js.map +1 -1
- package/dist/microfrontends/utils.cjs +47 -4
- package/dist/microfrontends/utils.cjs.map +1 -1
- package/dist/microfrontends/utils.js +47 -4
- package/dist/microfrontends/utils.js.map +1 -1
- package/dist/next/config.cjs +83 -1
- package/dist/next/config.cjs.map +1 -1
- package/dist/next/config.js +83 -1
- package/dist/next/config.js.map +1 -1
- package/dist/utils/mfe-port.cjs +105 -25
- package/dist/utils/mfe-port.cjs.map +1 -1
- package/dist/utils/mfe-port.js +105 -25
- package/dist/utils/mfe-port.js.map +1 -1
- package/package.json +1 -1
package/dist/next/config.js
CHANGED
|
@@ -259,6 +259,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
259
259
|
customConfigFilename
|
|
260
260
|
}) {
|
|
261
261
|
const applicationName = applicationContext.name;
|
|
262
|
+
logger.debug(
|
|
263
|
+
"[MFE Config] Searching repository for configs containing application:",
|
|
264
|
+
applicationName
|
|
265
|
+
);
|
|
262
266
|
try {
|
|
263
267
|
const microfrontendsJsonPaths = fg.globSync(
|
|
264
268
|
`**/{${getPossibleConfigurationFilenames({ customConfigFilename }).join(",")}}`,
|
|
@@ -270,6 +274,11 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
270
274
|
ignore: ["**/node_modules/**", "**/.git/**"]
|
|
271
275
|
}
|
|
272
276
|
);
|
|
277
|
+
logger.debug(
|
|
278
|
+
"[MFE Config] Found",
|
|
279
|
+
microfrontendsJsonPaths.length,
|
|
280
|
+
"config file(s) in repository"
|
|
281
|
+
);
|
|
273
282
|
const matchingPaths = [];
|
|
274
283
|
for (const microfrontendsJsonPath of microfrontendsJsonPaths) {
|
|
275
284
|
try {
|
|
@@ -279,12 +288,20 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
279
288
|
);
|
|
280
289
|
const microfrontendsJson = parse(microfrontendsJsonContent);
|
|
281
290
|
if (microfrontendsJson.applications[applicationName]) {
|
|
291
|
+
logger.debug(
|
|
292
|
+
"[MFE Config] Found application in config:",
|
|
293
|
+
microfrontendsJsonPath
|
|
294
|
+
);
|
|
282
295
|
matchingPaths.push(microfrontendsJsonPath);
|
|
283
296
|
} else {
|
|
284
297
|
for (const [_, app] of Object.entries(
|
|
285
298
|
microfrontendsJson.applications
|
|
286
299
|
)) {
|
|
287
300
|
if (app.packageName === applicationName) {
|
|
301
|
+
logger.debug(
|
|
302
|
+
"[MFE Config] Found application via packageName in config:",
|
|
303
|
+
microfrontendsJsonPath
|
|
304
|
+
);
|
|
288
305
|
matchingPaths.push(microfrontendsJsonPath);
|
|
289
306
|
}
|
|
290
307
|
}
|
|
@@ -292,6 +309,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
292
309
|
} catch (error2) {
|
|
293
310
|
}
|
|
294
311
|
}
|
|
312
|
+
logger.debug(
|
|
313
|
+
"[MFE Config] Total matching config files:",
|
|
314
|
+
matchingPaths.length
|
|
315
|
+
);
|
|
295
316
|
if (matchingPaths.length > 1) {
|
|
296
317
|
throw new MicrofrontendError(
|
|
297
318
|
`Found multiple \`microfrontends.json\` files in the repository referencing the application "${applicationName}", but only one is allowed.
|
|
@@ -1090,15 +1111,18 @@ import fs5 from "node:fs";
|
|
|
1090
1111
|
import path4 from "node:path";
|
|
1091
1112
|
function getApplicationContext(opts) {
|
|
1092
1113
|
if (opts?.appName) {
|
|
1114
|
+
logger.debug("[MFE Config] Application name from appName parameter:", opts.appName);
|
|
1093
1115
|
return { name: opts.appName };
|
|
1094
1116
|
}
|
|
1095
1117
|
if (process.env.VERCEL_PROJECT_NAME) {
|
|
1118
|
+
logger.debug("[MFE Config] Application name from VERCEL_PROJECT_NAME:", process.env.VERCEL_PROJECT_NAME);
|
|
1096
1119
|
return {
|
|
1097
1120
|
name: process.env.VERCEL_PROJECT_NAME,
|
|
1098
1121
|
projectName: process.env.VERCEL_PROJECT_NAME
|
|
1099
1122
|
};
|
|
1100
1123
|
}
|
|
1101
1124
|
if (process.env.NX_TASK_TARGET_PROJECT) {
|
|
1125
|
+
logger.debug("[MFE Config] Application name from NX_TASK_TARGET_PROJECT:", process.env.NX_TASK_TARGET_PROJECT);
|
|
1102
1126
|
return {
|
|
1103
1127
|
name: process.env.NX_TASK_TARGET_PROJECT,
|
|
1104
1128
|
packageJsonName: process.env.NX_TASK_TARGET_PROJECT
|
|
@@ -1111,6 +1135,7 @@ function getApplicationContext(opts) {
|
|
|
1111
1135
|
);
|
|
1112
1136
|
const projectJson = JSON.parse(vercelProjectJsonPath);
|
|
1113
1137
|
if (projectJson.projectName) {
|
|
1138
|
+
logger.debug("[MFE Config] Application name from .vercel/project.json:", projectJson.projectName);
|
|
1114
1139
|
return {
|
|
1115
1140
|
name: projectJson.projectName,
|
|
1116
1141
|
projectName: projectJson.projectName
|
|
@@ -1134,6 +1159,7 @@ function getApplicationContext(opts) {
|
|
|
1134
1159
|
}
|
|
1135
1160
|
);
|
|
1136
1161
|
}
|
|
1162
|
+
logger.debug("[MFE Config] Application name from package.json:", packageJson.name);
|
|
1137
1163
|
return { name: packageJson.name, packageJsonName: packageJson.name };
|
|
1138
1164
|
} catch (err) {
|
|
1139
1165
|
throw MicrofrontendError.handle(err, {
|
|
@@ -1505,7 +1531,13 @@ var MicrofrontendsServer = class {
|
|
|
1505
1531
|
filePath,
|
|
1506
1532
|
cookies
|
|
1507
1533
|
} = {}) {
|
|
1534
|
+
logger.debug("[MFE Config] Starting config inference", {
|
|
1535
|
+
appName,
|
|
1536
|
+
directory: directory || process.cwd(),
|
|
1537
|
+
filePath
|
|
1538
|
+
});
|
|
1508
1539
|
if (filePath) {
|
|
1540
|
+
logger.debug("[MFE Config] Using explicit filePath:", filePath);
|
|
1509
1541
|
return MicrofrontendsServer.fromFile({
|
|
1510
1542
|
filePath,
|
|
1511
1543
|
cookies
|
|
@@ -1513,16 +1545,25 @@ var MicrofrontendsServer = class {
|
|
|
1513
1545
|
}
|
|
1514
1546
|
try {
|
|
1515
1547
|
const packageRoot = findPackageRoot(directory);
|
|
1548
|
+
logger.debug("[MFE Config] Package root:", packageRoot);
|
|
1516
1549
|
const applicationContext = getApplicationContext({
|
|
1517
1550
|
appName,
|
|
1518
1551
|
packageRoot
|
|
1519
1552
|
});
|
|
1553
|
+
logger.debug("[MFE Config] Application context:", applicationContext);
|
|
1520
1554
|
const customConfigFilename = process.env.VC_MICROFRONTENDS_CONFIG_FILE_NAME;
|
|
1555
|
+
if (customConfigFilename) {
|
|
1556
|
+
logger.debug(
|
|
1557
|
+
"[MFE Config] Custom config filename from VC_MICROFRONTENDS_CONFIG_FILE_NAME:",
|
|
1558
|
+
customConfigFilename
|
|
1559
|
+
);
|
|
1560
|
+
}
|
|
1521
1561
|
const maybeConfig = findConfig({
|
|
1522
1562
|
dir: packageRoot,
|
|
1523
1563
|
customConfigFilename
|
|
1524
1564
|
});
|
|
1525
1565
|
if (maybeConfig) {
|
|
1566
|
+
logger.debug("[MFE Config] Config found at package root:", maybeConfig);
|
|
1526
1567
|
return MicrofrontendsServer.fromFile({
|
|
1527
1568
|
filePath: maybeConfig,
|
|
1528
1569
|
cookies
|
|
@@ -1530,42 +1571,78 @@ var MicrofrontendsServer = class {
|
|
|
1530
1571
|
}
|
|
1531
1572
|
const repositoryRoot = findRepositoryRoot();
|
|
1532
1573
|
const isMonorepo2 = isMonorepo({ repositoryRoot });
|
|
1574
|
+
logger.debug(
|
|
1575
|
+
"[MFE Config] Repository root:",
|
|
1576
|
+
repositoryRoot,
|
|
1577
|
+
"Is monorepo:",
|
|
1578
|
+
isMonorepo2
|
|
1579
|
+
);
|
|
1533
1580
|
const configFromEnv = process.env.VC_MICROFRONTENDS_CONFIG;
|
|
1534
1581
|
if (typeof configFromEnv === "string") {
|
|
1582
|
+
logger.debug(
|
|
1583
|
+
"[MFE Config] Checking VC_MICROFRONTENDS_CONFIG:",
|
|
1584
|
+
configFromEnv
|
|
1585
|
+
);
|
|
1535
1586
|
const maybeConfigFromEnv = resolve(packageRoot, configFromEnv);
|
|
1536
1587
|
if (maybeConfigFromEnv) {
|
|
1588
|
+
logger.debug(
|
|
1589
|
+
"[MFE Config] Config loaded from VC_MICROFRONTENDS_CONFIG:",
|
|
1590
|
+
maybeConfigFromEnv
|
|
1591
|
+
);
|
|
1537
1592
|
return MicrofrontendsServer.fromFile({
|
|
1538
1593
|
filePath: maybeConfigFromEnv,
|
|
1539
1594
|
cookies
|
|
1540
1595
|
});
|
|
1541
1596
|
}
|
|
1542
1597
|
} else {
|
|
1598
|
+
const vercelDir = join2(packageRoot, ".vercel");
|
|
1599
|
+
logger.debug(
|
|
1600
|
+
"[MFE Config] Searching for config in .vercel directory:",
|
|
1601
|
+
vercelDir
|
|
1602
|
+
);
|
|
1543
1603
|
const maybeConfigFromVercel = findConfig({
|
|
1544
|
-
dir:
|
|
1604
|
+
dir: vercelDir,
|
|
1545
1605
|
customConfigFilename
|
|
1546
1606
|
});
|
|
1547
1607
|
if (maybeConfigFromVercel) {
|
|
1608
|
+
logger.debug(
|
|
1609
|
+
"[MFE Config] Config found in .vercel directory:",
|
|
1610
|
+
maybeConfigFromVercel
|
|
1611
|
+
);
|
|
1548
1612
|
return MicrofrontendsServer.fromFile({
|
|
1549
1613
|
filePath: maybeConfigFromVercel,
|
|
1550
1614
|
cookies
|
|
1551
1615
|
});
|
|
1552
1616
|
}
|
|
1553
1617
|
if (isMonorepo2) {
|
|
1618
|
+
logger.debug(
|
|
1619
|
+
"[MFE Config] Inferring microfrontends location in monorepo for application:",
|
|
1620
|
+
applicationContext.name
|
|
1621
|
+
);
|
|
1554
1622
|
const defaultPackage = inferMicrofrontendsLocation({
|
|
1555
1623
|
repositoryRoot,
|
|
1556
1624
|
applicationContext,
|
|
1557
1625
|
customConfigFilename
|
|
1558
1626
|
});
|
|
1627
|
+
logger.debug(
|
|
1628
|
+
"[MFE Config] Inferred package location:",
|
|
1629
|
+
defaultPackage
|
|
1630
|
+
);
|
|
1559
1631
|
const maybeConfigFromDefault = findConfig({
|
|
1560
1632
|
dir: defaultPackage,
|
|
1561
1633
|
customConfigFilename
|
|
1562
1634
|
});
|
|
1563
1635
|
if (maybeConfigFromDefault) {
|
|
1636
|
+
logger.debug(
|
|
1637
|
+
"[MFE Config] Config found in inferred package:",
|
|
1638
|
+
maybeConfigFromDefault
|
|
1639
|
+
);
|
|
1564
1640
|
return MicrofrontendsServer.fromFile({
|
|
1565
1641
|
filePath: maybeConfigFromDefault,
|
|
1566
1642
|
cookies
|
|
1567
1643
|
});
|
|
1568
1644
|
}
|
|
1645
|
+
logger.debug("[MFE Config] No config found in inferred package");
|
|
1569
1646
|
}
|
|
1570
1647
|
}
|
|
1571
1648
|
throw new MicrofrontendError(
|
|
@@ -1591,8 +1668,13 @@ var MicrofrontendsServer = class {
|
|
|
1591
1668
|
cookies
|
|
1592
1669
|
}) {
|
|
1593
1670
|
try {
|
|
1671
|
+
logger.debug("[MFE Config] Reading config from file:", filePath);
|
|
1594
1672
|
const configJson = fs6.readFileSync(filePath, "utf-8");
|
|
1595
1673
|
const config = MicrofrontendsServer.validate(configJson);
|
|
1674
|
+
logger.debug(
|
|
1675
|
+
"[MFE Config] Config loaded with applications:",
|
|
1676
|
+
Object.keys(config.applications)
|
|
1677
|
+
);
|
|
1596
1678
|
return new MicrofrontendsServer({
|
|
1597
1679
|
config,
|
|
1598
1680
|
overrides: cookies ? parseOverrides(cookies) : void 0
|