@module-federation/vite 1.16.0 → 1.16.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/lib/index.cjs +14 -21
- package/lib/index.mjs +15 -21
- package/package.json +2 -2
package/lib/index.cjs
CHANGED
|
@@ -6,6 +6,7 @@ let module$1 = require("module");
|
|
|
6
6
|
let pathe = require("pathe");
|
|
7
7
|
pathe = require_packageUtils.__toESM(pathe);
|
|
8
8
|
let vite = require("vite");
|
|
9
|
+
let node_crypto = require("node:crypto");
|
|
9
10
|
let url = require("url");
|
|
10
11
|
let es_module_lexer = require("es-module-lexer");
|
|
11
12
|
//#region src/utils/codeRewriter.ts
|
|
@@ -254,23 +255,8 @@ function getLitExportSubpathShares(sharedName) {
|
|
|
254
255
|
return Object.keys(exportsField).filter((key) => key.startsWith("./") && key !== "." && !key.includes("*")).map((key) => `${sharedName}/${key.slice(2)}`);
|
|
255
256
|
}
|
|
256
257
|
function normalizeShareItem(key, shareItem) {
|
|
257
|
-
let version;
|
|
258
258
|
const isImportFalse = typeof shareItem === "object" && shareItem.import === false;
|
|
259
|
-
|
|
260
|
-
try {
|
|
261
|
-
version = require(pathe.join(require_packageUtils.getPackageName(key), "package.json")).version;
|
|
262
|
-
} catch (e1) {
|
|
263
|
-
try {
|
|
264
|
-
const localPath = pathe.join(process.cwd(), "node_modules", require_packageUtils.getPackageName(key), "package.json");
|
|
265
|
-
version = require(localPath).version;
|
|
266
|
-
} catch (e2) {
|
|
267
|
-
version = searchPackageVersion(key);
|
|
268
|
-
if (!version && !isImportFalse) require_packageUtils.mfError(e1);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
} catch (e) {
|
|
272
|
-
if (!isImportFalse) require_packageUtils.mfError(`Unexpected error resolving version for ${key}:`, e);
|
|
273
|
-
}
|
|
259
|
+
const version = (typeof shareItem === "object" ? shareItem.version || inferVersionFromRequiredVersion(shareItem.requiredVersion) : void 0) || searchPackageVersion(key);
|
|
274
260
|
if (typeof shareItem === "string") return {
|
|
275
261
|
name: shareItem,
|
|
276
262
|
version,
|
|
@@ -285,12 +271,12 @@ function normalizeShareItem(key, shareItem) {
|
|
|
285
271
|
return {
|
|
286
272
|
name: key,
|
|
287
273
|
from: "",
|
|
288
|
-
version
|
|
274
|
+
version,
|
|
289
275
|
scope: shareItem.shareScope || "default",
|
|
290
276
|
shareConfig: {
|
|
291
277
|
import: shareItem.import,
|
|
292
278
|
singleton: shareItem.singleton || false,
|
|
293
|
-
requiredVersion: shareItem.requiredVersion || (isImportFalse ? "*" : version ? `^${version}` : "*"),
|
|
279
|
+
requiredVersion: shareItem.requiredVersion || (isImportFalse || shareItem.version ? "*" : version ? `^${version}` : "*"),
|
|
294
280
|
strictVersion: !!shareItem.strictVersion
|
|
295
281
|
}
|
|
296
282
|
};
|
|
@@ -318,11 +304,13 @@ function normalizeShared(shared) {
|
|
|
318
304
|
const result = {};
|
|
319
305
|
const sourceEntries = [];
|
|
320
306
|
if (Array.isArray(shared)) shared.forEach((key) => {
|
|
307
|
+
if (isModuleFederationRuntimePackage(key)) return;
|
|
321
308
|
result[key] = normalizeShareItem(key, key);
|
|
322
309
|
explicitSharedKeys.add(key);
|
|
323
310
|
sourceEntries.push([key, key]);
|
|
324
311
|
});
|
|
325
312
|
else if (typeof shared === "object") Object.keys(shared).forEach((key) => {
|
|
313
|
+
if (isModuleFederationRuntimePackage(key)) return;
|
|
326
314
|
const value = shared[key];
|
|
327
315
|
result[key] = normalizeShareItem(key, value);
|
|
328
316
|
explicitSharedKeys.add(key);
|
|
@@ -336,11 +324,14 @@ function normalizeShared(shared) {
|
|
|
336
324
|
});
|
|
337
325
|
return result;
|
|
338
326
|
}
|
|
327
|
+
function isModuleFederationRuntimePackage(key) {
|
|
328
|
+
return key === "@module-federation/runtime" || key === "@module-federation/runtime-core";
|
|
329
|
+
}
|
|
339
330
|
function shouldAutoShareDependency(key) {
|
|
340
331
|
const pkg = require_packageUtils.getInstalledPackageJson(key)?.packageJson;
|
|
341
332
|
if (!pkg) return false;
|
|
342
333
|
if (!pkg.browser && !pkg.exports && typeof pkg.module !== "string") return false;
|
|
343
|
-
if (key === "@module-federation/vite") return false;
|
|
334
|
+
if (key === "@module-federation/vite" || isModuleFederationRuntimePackage(key)) return false;
|
|
344
335
|
const entry = [
|
|
345
336
|
pkg.module,
|
|
346
337
|
pkg.main,
|
|
@@ -1984,11 +1975,13 @@ const addEntry = ({ entryName, entryPath, fileName, inject = "entry", forceClien
|
|
|
1984
1975
|
let rewritten = false;
|
|
1985
1976
|
htmlContent = htmlContent.replace(scriptRegex, (scriptTag, entrySrc) => {
|
|
1986
1977
|
rewritten = true;
|
|
1987
|
-
const
|
|
1978
|
+
const bootstrapSource = getSystemBootstrapSource(initPath, entrySrc);
|
|
1979
|
+
const bootstrapHash = (0, node_crypto.createHash)("sha256").update(bootstrapSource).digest("hex").slice(0, 8);
|
|
1980
|
+
const bootstrapFileName = `mf-entry-bootstrap-${bootstrapIndex++}-${bootstrapHash}.js`;
|
|
1988
1981
|
const bootstrapRef = this.emitFile({
|
|
1989
1982
|
type: "asset",
|
|
1990
1983
|
fileName: bootstrapFileName,
|
|
1991
|
-
source:
|
|
1984
|
+
source: bootstrapSource
|
|
1992
1985
|
});
|
|
1993
1986
|
const bootstrapPath = viteConfig.base + this.getFileName(bootstrapRef);
|
|
1994
1987
|
return scriptTag.replace(entrySrc, bootstrapPath);
|
package/lib/index.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { a as getPackageName, c as isNuxtProjectRoot, d as setPackageDetectionCwd, f as createModuleFederationError, h as __require, i as getPackageDetectionCwd, l as packageNameDecode, m as mfWarn, n as getInstalledPackageJson, o as getPackageNameFromNodeModulePath,
|
|
1
|
+
import { a as getPackageName, c as isNuxtProjectRoot, d as setPackageDetectionCwd, f as createModuleFederationError, h as __require, i as getPackageDetectionCwd, l as packageNameDecode, m as mfWarn, n as getInstalledPackageJson, o as getPackageNameFromNodeModulePath, r as getIsRolldown, s as hasPackageDependency, t as getInstalledPackageEntry, u as packageNameEncode } from "./packageUtils-DOekOsFz.mjs";
|
|
2
2
|
import * as fs$1 from "fs";
|
|
3
3
|
import { existsSync, readFileSync, realpathSync, statSync, writeFileSync } from "fs";
|
|
4
4
|
import { createRequire } from "module";
|
|
5
5
|
import * as path$1 from "pathe";
|
|
6
6
|
import path, { basename } from "pathe";
|
|
7
7
|
import { version } from "vite";
|
|
8
|
+
import { createHash } from "node:crypto";
|
|
8
9
|
import { fileURLToPath } from "url";
|
|
9
10
|
import { init, parse } from "es-module-lexer";
|
|
10
11
|
//#region src/utils/codeRewriter.ts
|
|
@@ -253,22 +254,8 @@ function getLitExportSubpathShares(sharedName) {
|
|
|
253
254
|
return Object.keys(exportsField).filter((key) => key.startsWith("./") && key !== "." && !key.includes("*")).map((key) => `${sharedName}/${key.slice(2)}`);
|
|
254
255
|
}
|
|
255
256
|
function normalizeShareItem(key, shareItem) {
|
|
256
|
-
let version;
|
|
257
257
|
const isImportFalse = typeof shareItem === "object" && shareItem.import === false;
|
|
258
|
-
|
|
259
|
-
try {
|
|
260
|
-
version = __require(path$1.join(getPackageName(key), "package.json")).version;
|
|
261
|
-
} catch (e1) {
|
|
262
|
-
try {
|
|
263
|
-
version = __require(path$1.join(process.cwd(), "node_modules", getPackageName(key), "package.json")).version;
|
|
264
|
-
} catch (e2) {
|
|
265
|
-
version = searchPackageVersion(key);
|
|
266
|
-
if (!version && !isImportFalse) mfError(e1);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
} catch (e) {
|
|
270
|
-
if (!isImportFalse) mfError(`Unexpected error resolving version for ${key}:`, e);
|
|
271
|
-
}
|
|
258
|
+
const version = (typeof shareItem === "object" ? shareItem.version || inferVersionFromRequiredVersion(shareItem.requiredVersion) : void 0) || searchPackageVersion(key);
|
|
272
259
|
if (typeof shareItem === "string") return {
|
|
273
260
|
name: shareItem,
|
|
274
261
|
version,
|
|
@@ -283,12 +270,12 @@ function normalizeShareItem(key, shareItem) {
|
|
|
283
270
|
return {
|
|
284
271
|
name: key,
|
|
285
272
|
from: "",
|
|
286
|
-
version
|
|
273
|
+
version,
|
|
287
274
|
scope: shareItem.shareScope || "default",
|
|
288
275
|
shareConfig: {
|
|
289
276
|
import: shareItem.import,
|
|
290
277
|
singleton: shareItem.singleton || false,
|
|
291
|
-
requiredVersion: shareItem.requiredVersion || (isImportFalse ? "*" : version ? `^${version}` : "*"),
|
|
278
|
+
requiredVersion: shareItem.requiredVersion || (isImportFalse || shareItem.version ? "*" : version ? `^${version}` : "*"),
|
|
292
279
|
strictVersion: !!shareItem.strictVersion
|
|
293
280
|
}
|
|
294
281
|
};
|
|
@@ -316,11 +303,13 @@ function normalizeShared(shared) {
|
|
|
316
303
|
const result = {};
|
|
317
304
|
const sourceEntries = [];
|
|
318
305
|
if (Array.isArray(shared)) shared.forEach((key) => {
|
|
306
|
+
if (isModuleFederationRuntimePackage(key)) return;
|
|
319
307
|
result[key] = normalizeShareItem(key, key);
|
|
320
308
|
explicitSharedKeys.add(key);
|
|
321
309
|
sourceEntries.push([key, key]);
|
|
322
310
|
});
|
|
323
311
|
else if (typeof shared === "object") Object.keys(shared).forEach((key) => {
|
|
312
|
+
if (isModuleFederationRuntimePackage(key)) return;
|
|
324
313
|
const value = shared[key];
|
|
325
314
|
result[key] = normalizeShareItem(key, value);
|
|
326
315
|
explicitSharedKeys.add(key);
|
|
@@ -334,11 +323,14 @@ function normalizeShared(shared) {
|
|
|
334
323
|
});
|
|
335
324
|
return result;
|
|
336
325
|
}
|
|
326
|
+
function isModuleFederationRuntimePackage(key) {
|
|
327
|
+
return key === "@module-federation/runtime" || key === "@module-federation/runtime-core";
|
|
328
|
+
}
|
|
337
329
|
function shouldAutoShareDependency(key) {
|
|
338
330
|
const pkg = getInstalledPackageJson(key)?.packageJson;
|
|
339
331
|
if (!pkg) return false;
|
|
340
332
|
if (!pkg.browser && !pkg.exports && typeof pkg.module !== "string") return false;
|
|
341
|
-
if (key === "@module-federation/vite") return false;
|
|
333
|
+
if (key === "@module-federation/vite" || isModuleFederationRuntimePackage(key)) return false;
|
|
342
334
|
const entry = [
|
|
343
335
|
pkg.module,
|
|
344
336
|
pkg.main,
|
|
@@ -1982,11 +1974,13 @@ const addEntry = ({ entryName, entryPath, fileName, inject = "entry", forceClien
|
|
|
1982
1974
|
let rewritten = false;
|
|
1983
1975
|
htmlContent = htmlContent.replace(scriptRegex, (scriptTag, entrySrc) => {
|
|
1984
1976
|
rewritten = true;
|
|
1985
|
-
const
|
|
1977
|
+
const bootstrapSource = getSystemBootstrapSource(initPath, entrySrc);
|
|
1978
|
+
const bootstrapHash = createHash("sha256").update(bootstrapSource).digest("hex").slice(0, 8);
|
|
1979
|
+
const bootstrapFileName = `mf-entry-bootstrap-${bootstrapIndex++}-${bootstrapHash}.js`;
|
|
1986
1980
|
const bootstrapRef = this.emitFile({
|
|
1987
1981
|
type: "asset",
|
|
1988
1982
|
fileName: bootstrapFileName,
|
|
1989
|
-
source:
|
|
1983
|
+
source: bootstrapSource
|
|
1990
1984
|
});
|
|
1991
1985
|
const bootstrapPath = viteConfig.base + this.getFileName(bootstrapRef);
|
|
1992
1986
|
return scriptTag.replace(entrySrc, bootstrapPath);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/vite",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.1",
|
|
4
4
|
"description": "Vite plugin for Module Federation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.cjs",
|
|
@@ -96,4 +96,4 @@
|
|
|
96
96
|
"vite": "^8.0.10",
|
|
97
97
|
"vitest": "^4.0.18"
|
|
98
98
|
}
|
|
99
|
-
}
|
|
99
|
+
}
|