@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
|
@@ -251,6 +251,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
251
251
|
customConfigFilename
|
|
252
252
|
}) {
|
|
253
253
|
const applicationName = applicationContext.name;
|
|
254
|
+
logger.debug(
|
|
255
|
+
"[MFE Config] Searching repository for configs containing application:",
|
|
256
|
+
applicationName
|
|
257
|
+
);
|
|
254
258
|
try {
|
|
255
259
|
const microfrontendsJsonPaths = fg.globSync(
|
|
256
260
|
`**/{${getPossibleConfigurationFilenames({ customConfigFilename }).join(",")}}`,
|
|
@@ -262,6 +266,11 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
262
266
|
ignore: ["**/node_modules/**", "**/.git/**"]
|
|
263
267
|
}
|
|
264
268
|
);
|
|
269
|
+
logger.debug(
|
|
270
|
+
"[MFE Config] Found",
|
|
271
|
+
microfrontendsJsonPaths.length,
|
|
272
|
+
"config file(s) in repository"
|
|
273
|
+
);
|
|
265
274
|
const matchingPaths = [];
|
|
266
275
|
for (const microfrontendsJsonPath of microfrontendsJsonPaths) {
|
|
267
276
|
try {
|
|
@@ -271,12 +280,20 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
271
280
|
);
|
|
272
281
|
const microfrontendsJson = parse(microfrontendsJsonContent);
|
|
273
282
|
if (microfrontendsJson.applications[applicationName]) {
|
|
283
|
+
logger.debug(
|
|
284
|
+
"[MFE Config] Found application in config:",
|
|
285
|
+
microfrontendsJsonPath
|
|
286
|
+
);
|
|
274
287
|
matchingPaths.push(microfrontendsJsonPath);
|
|
275
288
|
} else {
|
|
276
289
|
for (const [_, app] of Object.entries(
|
|
277
290
|
microfrontendsJson.applications
|
|
278
291
|
)) {
|
|
279
292
|
if (app.packageName === applicationName) {
|
|
293
|
+
logger.debug(
|
|
294
|
+
"[MFE Config] Found application via packageName in config:",
|
|
295
|
+
microfrontendsJsonPath
|
|
296
|
+
);
|
|
280
297
|
matchingPaths.push(microfrontendsJsonPath);
|
|
281
298
|
}
|
|
282
299
|
}
|
|
@@ -284,6 +301,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
284
301
|
} catch (error2) {
|
|
285
302
|
}
|
|
286
303
|
}
|
|
304
|
+
logger.debug(
|
|
305
|
+
"[MFE Config] Total matching config files:",
|
|
306
|
+
matchingPaths.length
|
|
307
|
+
);
|
|
287
308
|
if (matchingPaths.length > 1) {
|
|
288
309
|
throw new MicrofrontendError(
|
|
289
310
|
`Found multiple \`microfrontends.json\` files in the repository referencing the application "${applicationName}", but only one is allowed.
|
|
@@ -1082,15 +1103,18 @@ import fs5 from "node:fs";
|
|
|
1082
1103
|
import path4 from "node:path";
|
|
1083
1104
|
function getApplicationContext(opts) {
|
|
1084
1105
|
if (opts?.appName) {
|
|
1106
|
+
logger.debug("[MFE Config] Application name from appName parameter:", opts.appName);
|
|
1085
1107
|
return { name: opts.appName };
|
|
1086
1108
|
}
|
|
1087
1109
|
if (process.env.VERCEL_PROJECT_NAME) {
|
|
1110
|
+
logger.debug("[MFE Config] Application name from VERCEL_PROJECT_NAME:", process.env.VERCEL_PROJECT_NAME);
|
|
1088
1111
|
return {
|
|
1089
1112
|
name: process.env.VERCEL_PROJECT_NAME,
|
|
1090
1113
|
projectName: process.env.VERCEL_PROJECT_NAME
|
|
1091
1114
|
};
|
|
1092
1115
|
}
|
|
1093
1116
|
if (process.env.NX_TASK_TARGET_PROJECT) {
|
|
1117
|
+
logger.debug("[MFE Config] Application name from NX_TASK_TARGET_PROJECT:", process.env.NX_TASK_TARGET_PROJECT);
|
|
1094
1118
|
return {
|
|
1095
1119
|
name: process.env.NX_TASK_TARGET_PROJECT,
|
|
1096
1120
|
packageJsonName: process.env.NX_TASK_TARGET_PROJECT
|
|
@@ -1103,6 +1127,7 @@ function getApplicationContext(opts) {
|
|
|
1103
1127
|
);
|
|
1104
1128
|
const projectJson = JSON.parse(vercelProjectJsonPath);
|
|
1105
1129
|
if (projectJson.projectName) {
|
|
1130
|
+
logger.debug("[MFE Config] Application name from .vercel/project.json:", projectJson.projectName);
|
|
1106
1131
|
return {
|
|
1107
1132
|
name: projectJson.projectName,
|
|
1108
1133
|
projectName: projectJson.projectName
|
|
@@ -1126,6 +1151,7 @@ function getApplicationContext(opts) {
|
|
|
1126
1151
|
}
|
|
1127
1152
|
);
|
|
1128
1153
|
}
|
|
1154
|
+
logger.debug("[MFE Config] Application name from package.json:", packageJson.name);
|
|
1129
1155
|
return { name: packageJson.name, packageJsonName: packageJson.name };
|
|
1130
1156
|
} catch (err) {
|
|
1131
1157
|
throw MicrofrontendError.handle(err, {
|
|
@@ -1497,7 +1523,13 @@ var MicrofrontendsServer = class {
|
|
|
1497
1523
|
filePath,
|
|
1498
1524
|
cookies
|
|
1499
1525
|
} = {}) {
|
|
1526
|
+
logger.debug("[MFE Config] Starting config inference", {
|
|
1527
|
+
appName,
|
|
1528
|
+
directory: directory || process.cwd(),
|
|
1529
|
+
filePath
|
|
1530
|
+
});
|
|
1500
1531
|
if (filePath) {
|
|
1532
|
+
logger.debug("[MFE Config] Using explicit filePath:", filePath);
|
|
1501
1533
|
return MicrofrontendsServer.fromFile({
|
|
1502
1534
|
filePath,
|
|
1503
1535
|
cookies
|
|
@@ -1505,16 +1537,25 @@ var MicrofrontendsServer = class {
|
|
|
1505
1537
|
}
|
|
1506
1538
|
try {
|
|
1507
1539
|
const packageRoot = findPackageRoot(directory);
|
|
1540
|
+
logger.debug("[MFE Config] Package root:", packageRoot);
|
|
1508
1541
|
const applicationContext = getApplicationContext({
|
|
1509
1542
|
appName,
|
|
1510
1543
|
packageRoot
|
|
1511
1544
|
});
|
|
1545
|
+
logger.debug("[MFE Config] Application context:", applicationContext);
|
|
1512
1546
|
const customConfigFilename = process.env.VC_MICROFRONTENDS_CONFIG_FILE_NAME;
|
|
1547
|
+
if (customConfigFilename) {
|
|
1548
|
+
logger.debug(
|
|
1549
|
+
"[MFE Config] Custom config filename from VC_MICROFRONTENDS_CONFIG_FILE_NAME:",
|
|
1550
|
+
customConfigFilename
|
|
1551
|
+
);
|
|
1552
|
+
}
|
|
1513
1553
|
const maybeConfig = findConfig({
|
|
1514
1554
|
dir: packageRoot,
|
|
1515
1555
|
customConfigFilename
|
|
1516
1556
|
});
|
|
1517
1557
|
if (maybeConfig) {
|
|
1558
|
+
logger.debug("[MFE Config] Config found at package root:", maybeConfig);
|
|
1518
1559
|
return MicrofrontendsServer.fromFile({
|
|
1519
1560
|
filePath: maybeConfig,
|
|
1520
1561
|
cookies
|
|
@@ -1522,42 +1563,78 @@ var MicrofrontendsServer = class {
|
|
|
1522
1563
|
}
|
|
1523
1564
|
const repositoryRoot = findRepositoryRoot();
|
|
1524
1565
|
const isMonorepo2 = isMonorepo({ repositoryRoot });
|
|
1566
|
+
logger.debug(
|
|
1567
|
+
"[MFE Config] Repository root:",
|
|
1568
|
+
repositoryRoot,
|
|
1569
|
+
"Is monorepo:",
|
|
1570
|
+
isMonorepo2
|
|
1571
|
+
);
|
|
1525
1572
|
const configFromEnv = process.env.VC_MICROFRONTENDS_CONFIG;
|
|
1526
1573
|
if (typeof configFromEnv === "string") {
|
|
1574
|
+
logger.debug(
|
|
1575
|
+
"[MFE Config] Checking VC_MICROFRONTENDS_CONFIG:",
|
|
1576
|
+
configFromEnv
|
|
1577
|
+
);
|
|
1527
1578
|
const maybeConfigFromEnv = resolve(packageRoot, configFromEnv);
|
|
1528
1579
|
if (maybeConfigFromEnv) {
|
|
1580
|
+
logger.debug(
|
|
1581
|
+
"[MFE Config] Config loaded from VC_MICROFRONTENDS_CONFIG:",
|
|
1582
|
+
maybeConfigFromEnv
|
|
1583
|
+
);
|
|
1529
1584
|
return MicrofrontendsServer.fromFile({
|
|
1530
1585
|
filePath: maybeConfigFromEnv,
|
|
1531
1586
|
cookies
|
|
1532
1587
|
});
|
|
1533
1588
|
}
|
|
1534
1589
|
} else {
|
|
1590
|
+
const vercelDir = join2(packageRoot, ".vercel");
|
|
1591
|
+
logger.debug(
|
|
1592
|
+
"[MFE Config] Searching for config in .vercel directory:",
|
|
1593
|
+
vercelDir
|
|
1594
|
+
);
|
|
1535
1595
|
const maybeConfigFromVercel = findConfig({
|
|
1536
|
-
dir:
|
|
1596
|
+
dir: vercelDir,
|
|
1537
1597
|
customConfigFilename
|
|
1538
1598
|
});
|
|
1539
1599
|
if (maybeConfigFromVercel) {
|
|
1600
|
+
logger.debug(
|
|
1601
|
+
"[MFE Config] Config found in .vercel directory:",
|
|
1602
|
+
maybeConfigFromVercel
|
|
1603
|
+
);
|
|
1540
1604
|
return MicrofrontendsServer.fromFile({
|
|
1541
1605
|
filePath: maybeConfigFromVercel,
|
|
1542
1606
|
cookies
|
|
1543
1607
|
});
|
|
1544
1608
|
}
|
|
1545
1609
|
if (isMonorepo2) {
|
|
1610
|
+
logger.debug(
|
|
1611
|
+
"[MFE Config] Inferring microfrontends location in monorepo for application:",
|
|
1612
|
+
applicationContext.name
|
|
1613
|
+
);
|
|
1546
1614
|
const defaultPackage = inferMicrofrontendsLocation({
|
|
1547
1615
|
repositoryRoot,
|
|
1548
1616
|
applicationContext,
|
|
1549
1617
|
customConfigFilename
|
|
1550
1618
|
});
|
|
1619
|
+
logger.debug(
|
|
1620
|
+
"[MFE Config] Inferred package location:",
|
|
1621
|
+
defaultPackage
|
|
1622
|
+
);
|
|
1551
1623
|
const maybeConfigFromDefault = findConfig({
|
|
1552
1624
|
dir: defaultPackage,
|
|
1553
1625
|
customConfigFilename
|
|
1554
1626
|
});
|
|
1555
1627
|
if (maybeConfigFromDefault) {
|
|
1628
|
+
logger.debug(
|
|
1629
|
+
"[MFE Config] Config found in inferred package:",
|
|
1630
|
+
maybeConfigFromDefault
|
|
1631
|
+
);
|
|
1556
1632
|
return MicrofrontendsServer.fromFile({
|
|
1557
1633
|
filePath: maybeConfigFromDefault,
|
|
1558
1634
|
cookies
|
|
1559
1635
|
});
|
|
1560
1636
|
}
|
|
1637
|
+
logger.debug("[MFE Config] No config found in inferred package");
|
|
1561
1638
|
}
|
|
1562
1639
|
}
|
|
1563
1640
|
throw new MicrofrontendError(
|
|
@@ -1583,8 +1660,13 @@ var MicrofrontendsServer = class {
|
|
|
1583
1660
|
cookies
|
|
1584
1661
|
}) {
|
|
1585
1662
|
try {
|
|
1663
|
+
logger.debug("[MFE Config] Reading config from file:", filePath);
|
|
1586
1664
|
const configJson = fs6.readFileSync(filePath, "utf-8");
|
|
1587
1665
|
const config = MicrofrontendsServer.validate(configJson);
|
|
1666
|
+
logger.debug(
|
|
1667
|
+
"[MFE Config] Config loaded with applications:",
|
|
1668
|
+
Object.keys(config.applications)
|
|
1669
|
+
);
|
|
1588
1670
|
return new MicrofrontendsServer({
|
|
1589
1671
|
config,
|
|
1590
1672
|
overrides: cookies ? parseOverrides(cookies) : void 0
|