@vc-shell/config-generator 2.0.0-alpha.1 → 2.0.0-alpha.10
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 +2648 -0
- package/dist/index.d.ts +1 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -44
- package/dist/index.js.map +1 -1
- package/package.json +6 -8
- package/LICENSE +0 -12
- package/dist/templates/shared-deps.d.ts +0 -23
- package/dist/templates/shared-deps.d.ts.map +0 -1
- package/dist/templates/shared-deps.js +0 -33
- package/dist/templates/shared-deps.js.map +0 -1
- package/dist/templates/vite.dynamic-module.appconfig.d.ts +0 -7
- package/dist/templates/vite.dynamic-module.appconfig.d.ts.map +0 -1
- package/dist/templates/vite.dynamic-module.appconfig.js +0 -72
- package/dist/templates/vite.dynamic-module.appconfig.js.map +0 -1
- package/dist/templates/vite.dynamic-module.appconfig.test.d.ts +0 -2
- package/dist/templates/vite.dynamic-module.appconfig.test.d.ts.map +0 -1
- package/dist/templates/vite.dynamic-module.appconfig.test.js +0 -60
- package/dist/templates/vite.dynamic-module.appconfig.test.js.map +0 -1
- package/dist/templates/vite.host.appconfig.d.ts +0 -32
- package/dist/templates/vite.host.appconfig.d.ts.map +0 -1
- package/dist/templates/vite.host.appconfig.js +0 -42
- package/dist/templates/vite.host.appconfig.js.map +0 -1
- package/dist/templates/vite.host.appconfig.test.d.ts +0 -2
- package/dist/templates/vite.host.appconfig.test.d.ts.map +0 -1
- package/dist/templates/vite.host.appconfig.test.js +0 -51
- package/dist/templates/vite.host.appconfig.test.js.map +0 -1
- package/dist/types.d.ts +0 -36
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,32 +1,8 @@
|
|
|
1
1
|
import { UserConfig } from "vite";
|
|
2
|
-
import { getHostFederationConfig } from "./templates/vite.host.appconfig.js";
|
|
3
2
|
import type { ModulesLibraryOptions } from "./templates/vite.modules-library.appconfig.js";
|
|
4
|
-
import { DynamicModuleOptions } from "./types.js";
|
|
5
3
|
declare function getLibraryConfiguration(options?: UserConfig): Record<string, any>;
|
|
6
4
|
declare function getApplicationConfiguration(options?: UserConfig): Record<string, any>;
|
|
7
|
-
/**
|
|
8
|
-
* Generate a Vite configuration for a dynamic module
|
|
9
|
-
*
|
|
10
|
-
* @param options - Custom configuration options
|
|
11
|
-
* @returns Vite configuration
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```js
|
|
15
|
-
* // vite.config.js
|
|
16
|
-
* import { getDynamicModuleConfiguration } from '@vc-shell/dynamic-modules-config';
|
|
17
|
-
*
|
|
18
|
-
* export default getDynamicModuleConfiguration({
|
|
19
|
-
* // Custom configuration options
|
|
20
|
-
* compatibility: {
|
|
21
|
-
* framework: '^1.1.0',
|
|
22
|
-
* }
|
|
23
|
-
* });
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
declare function getDynamicModuleConfiguration(options: DynamicModuleOptions): Record<string, any>;
|
|
27
5
|
declare function getModulesLibraryConfiguration(options?: ModulesLibraryOptions): Record<string, any>;
|
|
28
|
-
export type { DynamicModuleOptions, CompatibilityOptions } from "./types.js";
|
|
29
6
|
export type { ModulesLibraryOptions } from "./templates/vite.modules-library.appconfig.js";
|
|
30
|
-
export
|
|
31
|
-
export { getLibraryConfiguration, getApplicationConfiguration, getDynamicModuleConfiguration, getModulesLibraryConfiguration, getHostFederationConfig };
|
|
7
|
+
export { getLibraryConfiguration, getApplicationConfiguration, getModulesLibraryConfiguration };
|
|
32
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,UAAU,EAAgB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,UAAU,EAAgB,MAAM,MAAM,CAAC;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAMnG,iBAAS,uBAAuB,CAAC,OAAO,GAAE,UAAe,uBAGxD;AAED,iBAAS,2BAA2B,CAAC,OAAO,GAAE,UAAe,uBAG5D;AA0CD,iBAAS,8BAA8B,CAAC,OAAO,GAAE,qBAA0B,uBAI1E;AAED,YAAY,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAEnG,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,11 +2,7 @@ import applicationConfiguration from "./templates/vite.application.appconfig.js"
|
|
|
2
2
|
import libraryConfiguration from "./templates/vite.library.appconfig.js";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { mergeConfig } from "vite";
|
|
5
|
-
import { readFileSync } from "node:fs";
|
|
6
|
-
import { join } from "node:path";
|
|
7
5
|
import { cwd } from "node:process";
|
|
8
|
-
import dynamicModuleConfiguration from "./templates/vite.dynamic-module.appconfig.js";
|
|
9
|
-
import { getHostFederationConfig } from "./templates/vite.host.appconfig.js";
|
|
10
6
|
import modulesLibraryConfiguration from "./templates/vite.modules-library.appconfig.js";
|
|
11
7
|
const packageJson = fs.readFileSync(cwd() + "/package.json");
|
|
12
8
|
const name = JSON.parse(packageJson.toString()).name;
|
|
@@ -50,49 +46,10 @@ function toAliasArray(alias) {
|
|
|
50
46
|
}
|
|
51
47
|
return Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));
|
|
52
48
|
}
|
|
53
|
-
// Get package.json from current working directory
|
|
54
|
-
const getPackageJson = () => {
|
|
55
|
-
try {
|
|
56
|
-
const packageJsonPath = join(cwd(), "package.json");
|
|
57
|
-
return JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
console.error("Error reading package.json:", error);
|
|
61
|
-
return { name: "unknown-module", version: "0.0.0", dependencies: {} };
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Generate a Vite configuration for a dynamic module
|
|
66
|
-
*
|
|
67
|
-
* @param options - Custom configuration options
|
|
68
|
-
* @returns Vite configuration
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```js
|
|
72
|
-
* // vite.config.js
|
|
73
|
-
* import { getDynamicModuleConfiguration } from '@vc-shell/dynamic-modules-config';
|
|
74
|
-
*
|
|
75
|
-
* export default getDynamicModuleConfiguration({
|
|
76
|
-
* // Custom configuration options
|
|
77
|
-
* compatibility: {
|
|
78
|
-
* framework: '^1.1.0',
|
|
79
|
-
* }
|
|
80
|
-
* });
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
function getDynamicModuleConfiguration(options) {
|
|
84
|
-
console.log(`Building dynamic module with options:`, options);
|
|
85
|
-
const pkg = getPackageJson();
|
|
86
|
-
const name = pkg.name;
|
|
87
|
-
const version = pkg.version;
|
|
88
|
-
console.log(`Module: ${name}@${version}`);
|
|
89
|
-
const baseConfig = dynamicModuleConfiguration(pkg, options);
|
|
90
|
-
return mergeConfig(baseConfig, options);
|
|
91
|
-
}
|
|
92
49
|
function getModulesLibraryConfiguration(options = {}) {
|
|
93
50
|
console.log(`Building modules library ${name} v.${version} ...`);
|
|
94
51
|
const baseConfig = modulesLibraryConfiguration(options);
|
|
95
52
|
return mergeConfig(baseConfig, options);
|
|
96
53
|
}
|
|
97
|
-
export { getLibraryConfiguration, getApplicationConfiguration,
|
|
54
|
+
export { getLibraryConfiguration, getApplicationConfiguration, getModulesLibraryConfiguration };
|
|
98
55
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,mDAAmD,CAAC;AACzF,OAAO,oBAAoB,MAAM,+CAA+C,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAA4B,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vc-shell/config-generator",
|
|
3
3
|
"description": "Generate Vite configurations",
|
|
4
|
-
"version": "2.0.0-alpha.
|
|
4
|
+
"version": "2.0.0-alpha.10",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -9,19 +9,18 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
|
-
"build": "tsc && tsc-alias"
|
|
12
|
+
"build": "echo 'Building @vc-shell/config-generator...' && tsc -b --clean && tsc && tsc-alias && echo '@vc-shell/config-generator built.'"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@module-federation/vite": "^1.12.0",
|
|
16
15
|
"@vitejs/plugin-vue": "^5.2.3",
|
|
17
16
|
"vite": "^6.3.3",
|
|
18
17
|
"vite-plugin-checker": "^0.9.1",
|
|
19
18
|
"vite-plugin-circular-dependency": "^0.5.0",
|
|
20
19
|
"vite-plugin-mkcert": "^1.17.1",
|
|
21
|
-
"vue": "^3.5.
|
|
20
|
+
"vue": "^3.5.30"
|
|
22
21
|
},
|
|
23
22
|
"devDependencies": {
|
|
24
|
-
"@vc-shell/ts-config": "2.0.0-alpha.
|
|
23
|
+
"@vc-shell/ts-config": "2.0.0-alpha.10",
|
|
25
24
|
"http-proxy-middleware": "^3.0.2",
|
|
26
25
|
"rollup-plugin-visualizer": "^6.0.3",
|
|
27
26
|
"tsc-alias": "^1.8.8",
|
|
@@ -30,6 +29,5 @@
|
|
|
30
29
|
"publishConfig": {
|
|
31
30
|
"access": "public",
|
|
32
31
|
"registry": "https://registry.npmjs.org/"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
}
|
|
32
|
+
}
|
|
33
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Copyright (c) Virto Solutions LTD. All rights reserved.
|
|
2
|
-
|
|
3
|
-
Licensed under the Virto Commerce Open Software License (the "License"); you
|
|
4
|
-
may not use this file except in compliance with the License. You may
|
|
5
|
-
obtain a copy of the License at
|
|
6
|
-
|
|
7
|
-
https://virtocommerce.com/open-source-license
|
|
8
|
-
|
|
9
|
-
Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
12
|
-
implied.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface SharedDepConfig {
|
|
2
|
-
singleton?: boolean;
|
|
3
|
-
requiredVersion?: string;
|
|
4
|
-
eager?: boolean;
|
|
5
|
-
import?: false | string;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Canonical list of shared dependency names.
|
|
9
|
-
* This is the SINGLE SOURCE OF TRUTH — loader-mf.ts imports this
|
|
10
|
-
* to build its runtime shared config, ensuring build and runtime stay in sync.
|
|
11
|
-
*/
|
|
12
|
-
export declare const SHARED_DEP_NAMES: ReadonlyArray<"vue" | "vue-router" | "vue-i18n" | "vee-validate" | "lodash-es" | "@vueuse/core" | "@vc-shell/framework">;
|
|
13
|
-
/**
|
|
14
|
-
* Shared deps for HOST app — bundles all deps (provides them to remotes).
|
|
15
|
-
*/
|
|
16
|
-
export declare const DEFAULT_SHARED: Record<string, SharedDepConfig>;
|
|
17
|
-
/**
|
|
18
|
-
* Shared deps for REMOTE modules — `import: false` prevents bundling fallback chunks.
|
|
19
|
-
* The remote relies entirely on the host to provide these deps at runtime.
|
|
20
|
-
* This eliminates multi-MB fallback bundles (vue, framework, lodash, etc).
|
|
21
|
-
*/
|
|
22
|
-
export declare const REMOTE_SHARED: Record<string, SharedDepConfig>;
|
|
23
|
-
//# sourceMappingURL=shared-deps.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared-deps.d.ts","sourceRoot":"","sources":["../../src/templates/shared-deps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACzB;AAgBD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAoC,aAAa,CAC5E,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,qBAAqB,CAC1G,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAA2B,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAKzD,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base shared dependency definitions for Module Federation.
|
|
3
|
-
* Both host and remote use the same dep list with singleton negotiation.
|
|
4
|
-
*/
|
|
5
|
-
const SHARED_DEPS_BASE = {
|
|
6
|
-
vue: { singleton: true, requiredVersion: "^3.4.0" },
|
|
7
|
-
"vue-router": { singleton: true, requiredVersion: "^4.0.0" },
|
|
8
|
-
"vue-i18n": { singleton: true, requiredVersion: "^9.0.0" },
|
|
9
|
-
"vee-validate": { singleton: true },
|
|
10
|
-
"lodash-es": { singleton: true },
|
|
11
|
-
"@vueuse/core": { singleton: true },
|
|
12
|
-
"@vc-shell/framework": { singleton: true },
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Canonical list of shared dependency names.
|
|
16
|
-
* This is the SINGLE SOURCE OF TRUTH — loader-mf.ts imports this
|
|
17
|
-
* to build its runtime shared config, ensuring build and runtime stay in sync.
|
|
18
|
-
*/
|
|
19
|
-
export const SHARED_DEP_NAMES = Object.keys(SHARED_DEPS_BASE);
|
|
20
|
-
/**
|
|
21
|
-
* Shared deps for HOST app — bundles all deps (provides them to remotes).
|
|
22
|
-
*/
|
|
23
|
-
export const DEFAULT_SHARED = { ...SHARED_DEPS_BASE };
|
|
24
|
-
/**
|
|
25
|
-
* Shared deps for REMOTE modules — `import: false` prevents bundling fallback chunks.
|
|
26
|
-
* The remote relies entirely on the host to provide these deps at runtime.
|
|
27
|
-
* This eliminates multi-MB fallback bundles (vue, framework, lodash, etc).
|
|
28
|
-
*/
|
|
29
|
-
export const REMOTE_SHARED = Object.fromEntries(Object.entries(SHARED_DEPS_BASE).map(([key, config]) => [
|
|
30
|
-
key,
|
|
31
|
-
{ ...config, import: false },
|
|
32
|
-
]));
|
|
33
|
-
//# sourceMappingURL=shared-deps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared-deps.js","sourceRoot":"","sources":["../../src/templates/shared-deps.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,gBAAgB,GAAoD;IACxE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE;IACnD,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE;IAC5D,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE;IAC1D,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;IACnC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;IAChC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;IACnC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;CAC3C,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAE3D,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoC,EAAE,GAAG,gBAAgB,EAAE,CAAC;AAEvF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAoC,MAAM,CAAC,WAAW,CAC9E,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IACtD,GAAG;IACH,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAc,EAAE;CACtC,CAAC,CACH,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { UserConfig } from "vite";
|
|
2
|
-
import type { DynamicModuleOptions } from "../types.js";
|
|
3
|
-
export default function dynamicModuleConfiguration(pkg: {
|
|
4
|
-
name: string;
|
|
5
|
-
version: string;
|
|
6
|
-
}, options: DynamicModuleOptions): UserConfig;
|
|
7
|
-
//# sourceMappingURL=vite.dynamic-module.appconfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.dynamic-module.appconfig.d.ts","sourceRoot":"","sources":["../../src/templates/vite.dynamic-module.appconfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAiD/D,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACtC,OAAO,EAAE,oBAAoB,GAC5B,UAAU,CAsBZ"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import vue from "@vitejs/plugin-vue";
|
|
2
|
-
import { federation } from "@module-federation/vite";
|
|
3
|
-
import { REMOTE_SHARED } from "./shared-deps.js";
|
|
4
|
-
import { cwd } from "node:process";
|
|
5
|
-
import { resolve } from "node:path";
|
|
6
|
-
import { realpathSync } from "node:fs";
|
|
7
|
-
/**
|
|
8
|
-
* Strips CSS/style from ALL files outside the module's own source directory.
|
|
9
|
-
* Remote MF modules should not emit CSS from shared deps (framework, vue, etc.)
|
|
10
|
-
* because the host app already provides all base styles, component CSS, and fonts.
|
|
11
|
-
*
|
|
12
|
-
* Works regardless of how deps are resolved (node_modules, portal:, link:, etc.)
|
|
13
|
-
*/
|
|
14
|
-
function stripExternalStyles() {
|
|
15
|
-
let normalizedRoot;
|
|
16
|
-
return {
|
|
17
|
-
name: "strip-external-styles",
|
|
18
|
-
enforce: "pre",
|
|
19
|
-
buildStart() {
|
|
20
|
-
// Resolve symlinks once at build start, not at import time.
|
|
21
|
-
// This handles yarn link, portal:, and other symlink scenarios.
|
|
22
|
-
try {
|
|
23
|
-
normalizedRoot = realpathSync(resolve(cwd()));
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
normalizedRoot = resolve(cwd());
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
transform(code, id) {
|
|
30
|
-
// Normalize the incoming id as well to handle symlinked deps
|
|
31
|
-
let normalizedId;
|
|
32
|
-
try {
|
|
33
|
-
// Strip query params (e.g. ?type=style) before resolving
|
|
34
|
-
const idPath = id.split("?")[0];
|
|
35
|
-
normalizedId = realpathSync(idPath);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
normalizedId = id;
|
|
39
|
-
}
|
|
40
|
-
if (/type=style/.test(id) && !normalizedId.startsWith(normalizedRoot)) {
|
|
41
|
-
return { code: "", map: null };
|
|
42
|
-
}
|
|
43
|
-
if (/\.(css|scss|sass|less|styl)$/.test(id) && !normalizedId.startsWith(normalizedRoot)) {
|
|
44
|
-
return { code: "", map: null };
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export default function dynamicModuleConfiguration(pkg, options) {
|
|
51
|
-
const entry = options.entry ?? "./src/modules/index.ts";
|
|
52
|
-
return {
|
|
53
|
-
plugins: [
|
|
54
|
-
stripExternalStyles(),
|
|
55
|
-
vue(),
|
|
56
|
-
federation({
|
|
57
|
-
name: pkg.name,
|
|
58
|
-
filename: "remoteEntry.js",
|
|
59
|
-
exposes: options.exposes ?? {
|
|
60
|
-
"./module": entry,
|
|
61
|
-
},
|
|
62
|
-
shared: { ...REMOTE_SHARED },
|
|
63
|
-
dts: false,
|
|
64
|
-
}),
|
|
65
|
-
],
|
|
66
|
-
build: {
|
|
67
|
-
target: "esnext",
|
|
68
|
-
outDir: "dist",
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=vite.dynamic-module.appconfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.dynamic-module.appconfig.js","sourceRoot":"","sources":["../../src/templates/vite.dynamic-module.appconfig.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;GAMG;AACH,SAAS,mBAAmB;IAC1B,IAAI,cAAsB,CAAC;IAE3B,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,KAAK;QACd,UAAU;YACR,4DAA4D;YAC5D,gEAAgE;YAChE,IAAI,CAAC;gBACH,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,SAAS,CAAC,IAAI,EAAE,EAAE;YAChB,6DAA6D;YAC7D,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,yDAAyD;gBACzD,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;YACD,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,GAAsC,EACtC,OAA6B;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,wBAAwB,CAAC;IAExD,OAAO;QACL,OAAO,EAAE;YACP,mBAAmB,EAAE;YACrB,GAAG,EAAE;YACL,UAAU,CAAC;gBACT,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,gBAAgB;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI;oBAC1B,UAAU,EAAE,KAAK;iBAClB;gBACD,MAAM,EAAE,EAAE,GAAG,aAAa,EAAE;gBAC5B,GAAG,EAAE,KAAK;aACX,CAAC;SACH;QACD,KAAK,EAAE;YACL,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;SACf;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.dynamic-module.appconfig.test.d.ts","sourceRoot":"","sources":["../../src/templates/vite.dynamic-module.appconfig.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from "vitest";
|
|
2
|
-
vi.mock("@module-federation/vite", () => ({
|
|
3
|
-
federation: vi.fn((config) => ({ name: "mf-plugin", _config: config })),
|
|
4
|
-
}));
|
|
5
|
-
vi.mock("@vitejs/plugin-vue", () => ({
|
|
6
|
-
default: vi.fn(() => ({ name: "vue-plugin" })),
|
|
7
|
-
}));
|
|
8
|
-
import dynamicModuleConfiguration from "./vite.dynamic-module.appconfig.js";
|
|
9
|
-
describe("dynamicModuleConfiguration (MF)", () => {
|
|
10
|
-
const pkg = { name: "reviews", version: "1.0.0" };
|
|
11
|
-
it("produces MF remote config with correct name and exposes", () => {
|
|
12
|
-
const config = dynamicModuleConfiguration(pkg, {
|
|
13
|
-
compatibility: { framework: "^2.0.0" },
|
|
14
|
-
});
|
|
15
|
-
expect(config.plugins).toBeDefined();
|
|
16
|
-
const mfPlugin = config.plugins.find((p) => p._config);
|
|
17
|
-
expect(mfPlugin._config.name).toBe("reviews");
|
|
18
|
-
expect(mfPlugin._config.filename).toBe("remoteEntry.js");
|
|
19
|
-
expect(mfPlugin._config.exposes["./module"]).toBe("./src/modules/index.ts");
|
|
20
|
-
});
|
|
21
|
-
it("uses custom entry point when provided", () => {
|
|
22
|
-
const config = dynamicModuleConfiguration(pkg, {
|
|
23
|
-
entry: "./src/custom.ts",
|
|
24
|
-
compatibility: { framework: "^2.0.0" },
|
|
25
|
-
});
|
|
26
|
-
const mfPlugin = config.plugins.find((p) => p._config);
|
|
27
|
-
expect(mfPlugin._config.exposes["./module"]).toBe("./src/custom.ts");
|
|
28
|
-
});
|
|
29
|
-
it("sets build target to esnext", () => {
|
|
30
|
-
const config = dynamicModuleConfiguration(pkg, {
|
|
31
|
-
compatibility: { framework: "^2.0.0" },
|
|
32
|
-
});
|
|
33
|
-
expect(config.build?.target).toBe("esnext");
|
|
34
|
-
});
|
|
35
|
-
it("includes shared deps with singleton: true", () => {
|
|
36
|
-
const config = dynamicModuleConfiguration(pkg, {
|
|
37
|
-
compatibility: { framework: "^2.0.0" },
|
|
38
|
-
});
|
|
39
|
-
const mfPlugin = config.plugins.find((p) => p._config);
|
|
40
|
-
expect(mfPlugin._config.shared.vue.singleton).toBe(true);
|
|
41
|
-
expect(mfPlugin._config.shared["@vc-shell/framework"].singleton).toBe(true);
|
|
42
|
-
});
|
|
43
|
-
it("stripExternalStyles plugin has buildStart hook for path normalization", () => {
|
|
44
|
-
const config = dynamicModuleConfiguration({ name: "test-module", version: "1.0.0" }, {});
|
|
45
|
-
const stripPlugin = config.plugins?.flat().find((p) => p?.name === "strip-external-styles");
|
|
46
|
-
expect(stripPlugin).toBeDefined();
|
|
47
|
-
expect(typeof stripPlugin.buildStart).toBe("function");
|
|
48
|
-
expect(typeof stripPlugin.transform).toBe("function");
|
|
49
|
-
});
|
|
50
|
-
it("uses custom exposes when provided", () => {
|
|
51
|
-
const config = dynamicModuleConfiguration(pkg, {
|
|
52
|
-
exposes: { "./custom": "./src/custom.ts" },
|
|
53
|
-
compatibility: { framework: "^2.0.0" },
|
|
54
|
-
});
|
|
55
|
-
const mfPlugin = config.plugins.find((p) => p._config);
|
|
56
|
-
expect(mfPlugin._config.exposes["./custom"]).toBe("./src/custom.ts");
|
|
57
|
-
expect(mfPlugin._config.exposes["./module"]).toBeUndefined();
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
//# sourceMappingURL=vite.dynamic-module.appconfig.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.dynamic-module.appconfig.test.js","sourceRoot":"","sources":["../../src/templates/vite.dynamic-module.appconfig.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { UserConfig } from "vite";
|
|
2
|
-
import { type SharedDepConfig } from "./shared-deps.js";
|
|
3
|
-
export interface HostFederationOptions {
|
|
4
|
-
sharedDeps?: Record<string, SharedDepConfig>;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Vite plugin configuration for Module Federation HOST apps.
|
|
8
|
-
*
|
|
9
|
-
* **Build-time only.** This configures the MF build plugin so Vite can:
|
|
10
|
-
* - Resolve `import` statements to shared deps without bundling duplicates
|
|
11
|
-
* - Generate proper chunk structure for MF host semantics
|
|
12
|
-
*
|
|
13
|
-
* **Does NOT replace runtime init().** The runtime loader (`loader-mf.ts`)
|
|
14
|
-
* still calls `@module-federation/enhanced/runtime` `init()` to register
|
|
15
|
-
* actual module instances (`lib: () => Vue`, etc.) and discover remotes
|
|
16
|
-
* from the server registry. Build-time plugin handles bundling;
|
|
17
|
-
* runtime init handles module provision.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* // vite.config.ts (host app)
|
|
22
|
-
* import { getApplicationConfiguration, getHostFederationConfig } from "@vc-shell/config-generator";
|
|
23
|
-
* import { mergeConfig } from "vite";
|
|
24
|
-
*
|
|
25
|
-
* export default mergeConfig(
|
|
26
|
-
* getApplicationConfiguration(),
|
|
27
|
-
* getHostFederationConfig(),
|
|
28
|
-
* );
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export declare function getHostFederationConfig(options?: HostFederationOptions): UserConfig;
|
|
32
|
-
//# sourceMappingURL=vite.host.appconfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.host.appconfig.d.ts","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,UAAU,CAaZ"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { federation } from "@module-federation/vite";
|
|
2
|
-
import { DEFAULT_SHARED } from "./shared-deps.js";
|
|
3
|
-
/**
|
|
4
|
-
* Vite plugin configuration for Module Federation HOST apps.
|
|
5
|
-
*
|
|
6
|
-
* **Build-time only.** This configures the MF build plugin so Vite can:
|
|
7
|
-
* - Resolve `import` statements to shared deps without bundling duplicates
|
|
8
|
-
* - Generate proper chunk structure for MF host semantics
|
|
9
|
-
*
|
|
10
|
-
* **Does NOT replace runtime init().** The runtime loader (`loader-mf.ts`)
|
|
11
|
-
* still calls `@module-federation/enhanced/runtime` `init()` to register
|
|
12
|
-
* actual module instances (`lib: () => Vue`, etc.) and discover remotes
|
|
13
|
-
* from the server registry. Build-time plugin handles bundling;
|
|
14
|
-
* runtime init handles module provision.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* // vite.config.ts (host app)
|
|
19
|
-
* import { getApplicationConfiguration, getHostFederationConfig } from "@vc-shell/config-generator";
|
|
20
|
-
* import { mergeConfig } from "vite";
|
|
21
|
-
*
|
|
22
|
-
* export default mergeConfig(
|
|
23
|
-
* getApplicationConfiguration(),
|
|
24
|
-
* getHostFederationConfig(),
|
|
25
|
-
* );
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export function getHostFederationConfig(options) {
|
|
29
|
-
return {
|
|
30
|
-
plugins: [
|
|
31
|
-
federation({
|
|
32
|
-
name: "host",
|
|
33
|
-
remotes: {},
|
|
34
|
-
shared: {
|
|
35
|
-
...DEFAULT_SHARED,
|
|
36
|
-
...options?.sharedDeps,
|
|
37
|
-
},
|
|
38
|
-
}),
|
|
39
|
-
],
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=vite.host.appconfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.host.appconfig.js","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAA+B;IAE/B,OAAO;QACL,OAAO,EAAE;YACP,UAAU,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE;oBACN,GAAG,cAAc;oBACjB,GAAG,OAAO,EAAE,UAAU;iBACvB;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.host.appconfig.test.d.ts","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from "vitest";
|
|
2
|
-
import { SHARED_DEP_NAMES } from "./shared-deps.js";
|
|
3
|
-
vi.mock("@module-federation/vite", () => ({
|
|
4
|
-
federation: vi.fn((config) => ({ name: "mf-plugin", _config: config })),
|
|
5
|
-
}));
|
|
6
|
-
import { getHostFederationConfig } from "./vite.host.appconfig.js";
|
|
7
|
-
it("SHARED_DEP_NAMES matches SHARED_DEPS_BASE keys", () => {
|
|
8
|
-
expect(SHARED_DEP_NAMES).toEqual(expect.arrayContaining([
|
|
9
|
-
"vue", "vue-router", "vue-i18n", "vee-validate",
|
|
10
|
-
"lodash-es", "@vueuse/core", "@vc-shell/framework",
|
|
11
|
-
]));
|
|
12
|
-
expect(SHARED_DEP_NAMES.length).toBe(7);
|
|
13
|
-
});
|
|
14
|
-
describe("getHostFederationConfig", () => {
|
|
15
|
-
it("returns config with MF plugin containing default shared deps", () => {
|
|
16
|
-
const config = getHostFederationConfig();
|
|
17
|
-
expect(config.plugins).toBeDefined();
|
|
18
|
-
expect(config.plugins).toHaveLength(1);
|
|
19
|
-
const plugin = config.plugins[0];
|
|
20
|
-
expect(plugin.name).toBe("mf-plugin");
|
|
21
|
-
const mfConfig = plugin._config;
|
|
22
|
-
expect(mfConfig.name).toBe("host");
|
|
23
|
-
expect(mfConfig.remotes).toEqual({});
|
|
24
|
-
const shared = mfConfig.shared;
|
|
25
|
-
expect(shared.vue).toEqual({ singleton: true, requiredVersion: "^3.4.0" });
|
|
26
|
-
expect(shared["vue-router"]).toEqual({ singleton: true, requiredVersion: "^4.0.0" });
|
|
27
|
-
expect(shared["vue-i18n"]).toEqual({ singleton: true, requiredVersion: "^9.0.0" });
|
|
28
|
-
expect(shared["@vc-shell/framework"]).toEqual({ singleton: true });
|
|
29
|
-
expect(shared["vee-validate"]).toEqual({ singleton: true });
|
|
30
|
-
expect(shared["lodash-es"]).toEqual({ singleton: true });
|
|
31
|
-
expect(shared["@vueuse/core"]).toEqual({ singleton: true });
|
|
32
|
-
});
|
|
33
|
-
it("merges custom sharedDeps while keeping defaults", () => {
|
|
34
|
-
const config = getHostFederationConfig({
|
|
35
|
-
sharedDeps: {
|
|
36
|
-
"my-lib": { singleton: true, requiredVersion: "^2.0.0" },
|
|
37
|
-
vue: { singleton: true, requiredVersion: "^3.5.0", eager: true },
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
const plugin = config.plugins[0];
|
|
41
|
-
const shared = plugin._config.shared;
|
|
42
|
-
// Custom dep added
|
|
43
|
-
expect(shared["my-lib"]).toEqual({ singleton: true, requiredVersion: "^2.0.0" });
|
|
44
|
-
// Vue overridden by custom
|
|
45
|
-
expect(shared.vue).toEqual({ singleton: true, requiredVersion: "^3.5.0", eager: true });
|
|
46
|
-
// Other defaults preserved
|
|
47
|
-
expect(shared["vue-router"]).toEqual({ singleton: true, requiredVersion: "^4.0.0" });
|
|
48
|
-
expect(shared["@vc-shell/framework"]).toEqual({ singleton: true });
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=vite.host.appconfig.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.host.appconfig.test.js","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.test.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { UserConfig } from "vite";
|
|
2
|
-
/**
|
|
3
|
-
* Compatibility options for dynamic modules
|
|
4
|
-
*/
|
|
5
|
-
export interface CompatibilityOptions {
|
|
6
|
-
/**
|
|
7
|
-
* Compatible framework version range
|
|
8
|
-
* @example "^1.1.0"
|
|
9
|
-
*/
|
|
10
|
-
framework: string;
|
|
11
|
-
/**
|
|
12
|
-
* Compatible modules version ranges
|
|
13
|
-
* @example { "@vc-shell/module-catalog": "^1.0.0" }
|
|
14
|
-
*/
|
|
15
|
-
modules?: Record<string, string>;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Dynamic module configuration options (Module Federation)
|
|
19
|
-
*/
|
|
20
|
-
export interface DynamicModuleOptions extends UserConfig {
|
|
21
|
-
/**
|
|
22
|
-
* Entry point for the module
|
|
23
|
-
* @default "./src/modules/index.ts"
|
|
24
|
-
*/
|
|
25
|
-
entry?: string;
|
|
26
|
-
/**
|
|
27
|
-
* Custom MF exposes map. Overrides default `{ "./module": entry }`.
|
|
28
|
-
*/
|
|
29
|
-
exposes?: Record<string, string>;
|
|
30
|
-
/**
|
|
31
|
-
* Compatibility constraints (metadata only — not used during build).
|
|
32
|
-
* Used by the runtime registry API for version filtering.
|
|
33
|
-
*/
|
|
34
|
-
compatibility?: CompatibilityOptions;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|