@nrwl/react 13.10.0-rc.0 → 13.10.0
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/executors.json +16 -0
- package/generators.json +14 -0
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/module-federation.d.ts +4 -0
- package/module-federation.js +10 -0
- package/module-federation.js.map +1 -0
- package/package.json +10 -9
- package/plugins/webpack.d.ts +2 -1
- package/plugins/webpack.js +2 -0
- package/plugins/webpack.js.map +1 -1
- package/src/executors/mfe-dev-server/compat.d.ts +2 -0
- package/src/executors/mfe-dev-server/compat.js +6 -0
- package/src/executors/mfe-dev-server/compat.js.map +1 -0
- package/src/executors/mfe-dev-server/mfe-dev-server.impl.d.ts +11 -0
- package/src/executors/mfe-dev-server/mfe-dev-server.impl.js +86 -0
- package/src/executors/mfe-dev-server/mfe-dev-server.impl.js.map +1 -0
- package/src/executors/mfe-dev-server/schema.json +82 -0
- package/src/generators/application/files/common/src/app/__fileName__.spec.tsx__tmpl__ +1 -1
- package/src/generators/application/lib/find-free-port.d.ts +2 -0
- package/src/generators/application/lib/find-free-port.js +18 -0
- package/src/generators/application/lib/find-free-port.js.map +1 -0
- package/src/generators/application/lib/normalize-options.js +3 -1
- package/src/generators/application/lib/normalize-options.js.map +1 -1
- package/src/generators/application/schema.d.ts +2 -0
- package/src/generators/mfe-host/files/common/src/app/__fileName__.tsx__tmpl__ +29 -0
- package/src/generators/mfe-host/files/mfe/mfe.config.js__tmpl__ +6 -0
- package/src/generators/mfe-host/files/mfe/src/main.ts__tmpl__ +1 -0
- package/src/generators/mfe-host/files/mfe/src/remotes.d.ts__tmpl__ +4 -0
- package/src/generators/mfe-host/files/mfe/webpack.config.js__tmpl__ +6 -0
- package/src/generators/mfe-host/files/mfe/webpack.config.prod.js__tmpl__ +26 -0
- package/src/generators/mfe-host/lib/add-mfe-files.d.ts +5 -0
- package/src/generators/mfe-host/lib/add-mfe-files.js +17 -0
- package/src/generators/mfe-host/lib/add-mfe-files.js.map +1 -0
- package/src/generators/mfe-host/lib/update-mfe-e2e-project.d.ts +3 -0
- package/src/generators/mfe-host/lib/update-mfe-e2e-project.js +17 -0
- package/src/generators/mfe-host/lib/update-mfe-e2e-project.js.map +1 -0
- package/src/generators/mfe-host/mfe-host.d.ts +4 -0
- package/src/generators/mfe-host/mfe-host.js +46 -0
- package/src/generators/mfe-host/mfe-host.js.map +1 -0
- package/src/generators/mfe-host/schema.d.ts +28 -0
- package/src/generators/mfe-host/schema.json +155 -0
- package/src/generators/mfe-remote/files/mfe/mfe.config.js__tmpl__ +6 -0
- package/src/generators/mfe-remote/files/mfe/src/main.ts__tmpl__ +1 -0
- package/src/generators/mfe-remote/files/mfe/src/remote-entry.ts__tmpl__ +1 -0
- package/src/generators/mfe-remote/files/mfe/webpack.config.js__tmpl__ +6 -0
- package/src/generators/mfe-remote/files/mfe/webpack.config.prod.js__tmpl__ +1 -0
- package/src/generators/mfe-remote/lib/update-host-with-remote.d.ts +2 -0
- package/src/generators/mfe-remote/lib/update-host-with-remote.js +49 -0
- package/src/generators/mfe-remote/lib/update-host-with-remote.js.map +1 -0
- package/src/generators/mfe-remote/mfe-remote.d.ts +6 -0
- package/src/generators/mfe-remote/mfe-remote.js +38 -0
- package/src/generators/mfe-remote/mfe-remote.js.map +1 -0
- package/src/generators/mfe-remote/schema.d.ts +26 -0
- package/src/generators/mfe-remote/schema.json +159 -0
- package/src/generators/storybook-configuration/schema.d.ts +1 -0
- package/src/generators/storybook-configuration/schema.json +4 -0
- package/src/mfe/mfe-ast-utils.d.ts +8 -0
- package/src/mfe/mfe-ast-utils.js +96 -0
- package/src/mfe/mfe-ast-utils.js.map +1 -0
- package/src/mfe/webpack-utils.d.ts +17 -0
- package/src/mfe/webpack-utils.js +66 -0
- package/src/mfe/webpack-utils.js.map +1 -0
- package/src/mfe/with-module-federation.d.ts +14 -0
- package/src/mfe/with-module-federation.js +167 -0
- package/src/mfe/with-module-federation.js.map +1 -0
- package/src/rules/update-mfe-project.d.ts +6 -0
- package/src/rules/update-mfe-project.js +14 -0
- package/src/rules/update-mfe-project.js.map +1 -0
- package/src/utils/versions.js +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addRemoteRoute = exports.addRemoteDefinition = exports.addRemoteToMfeConfig = void 0;
|
|
4
|
+
const ts = require("typescript");
|
|
5
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
6
|
+
const find_nodes_1 = require("@nrwl/workspace/src/utilities/typescript/find-nodes");
|
|
7
|
+
const ast_utils_1 = require("../utils/ast-utils");
|
|
8
|
+
function addRemoteToMfeConfig(source, app) {
|
|
9
|
+
const assignments = (0, find_nodes_1.findNodes)(source, ts.SyntaxKind.PropertyAssignment);
|
|
10
|
+
const remotesAssignment = assignments.find((s) => s.name.getText() === 'remotes');
|
|
11
|
+
if (remotesAssignment) {
|
|
12
|
+
const arrayExpression = remotesAssignment.initializer;
|
|
13
|
+
return arrayExpression.elements
|
|
14
|
+
? [
|
|
15
|
+
{
|
|
16
|
+
type: devkit_1.ChangeType.Insert,
|
|
17
|
+
index: arrayExpression.elements[arrayExpression.elements.length - 1].end,
|
|
18
|
+
text: `,`,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
type: devkit_1.ChangeType.Insert,
|
|
22
|
+
index: remotesAssignment.end - 1,
|
|
23
|
+
text: `'${app}',\n`,
|
|
24
|
+
},
|
|
25
|
+
]
|
|
26
|
+
: [];
|
|
27
|
+
}
|
|
28
|
+
const binaryExpressions = (0, find_nodes_1.findNodes)(source, ts.SyntaxKind.BinaryExpression);
|
|
29
|
+
const exportExpression = binaryExpressions.find((b) => {
|
|
30
|
+
if (b.left.kind === ts.SyntaxKind.PropertyAccessExpression) {
|
|
31
|
+
const pae = b.left;
|
|
32
|
+
return (pae.expression.getText() === 'module' &&
|
|
33
|
+
pae.name.getText() === 'exports');
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
if ((exportExpression === null || exportExpression === void 0 ? void 0 : exportExpression.right.kind) === ts.SyntaxKind.ObjectLiteralExpression) {
|
|
37
|
+
const ole = exportExpression.right;
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
type: devkit_1.ChangeType.Insert,
|
|
41
|
+
index: ole.end - 1,
|
|
42
|
+
text: `remotes: ['${app}']\n`,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
exports.addRemoteToMfeConfig = addRemoteToMfeConfig;
|
|
49
|
+
function addRemoteDefinition(source, app) {
|
|
50
|
+
return [
|
|
51
|
+
{
|
|
52
|
+
type: devkit_1.ChangeType.Insert,
|
|
53
|
+
index: source.end,
|
|
54
|
+
text: `\ndeclare module '${app}/Module';`,
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
exports.addRemoteDefinition = addRemoteDefinition;
|
|
59
|
+
function addRemoteRoute(source, names) {
|
|
60
|
+
const routes = (0, ast_utils_1.findElements)(source, 'Route');
|
|
61
|
+
const links = (0, ast_utils_1.findElements)(source, 'Link');
|
|
62
|
+
if (routes.length === 0) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const changes = [];
|
|
67
|
+
const firstRoute = routes[0];
|
|
68
|
+
const firstLink = links[0];
|
|
69
|
+
changes.push(...(0, ast_utils_1.addImport)(source, `const ${names.className} = React.lazy(() => import('${names.fileName}/Module'));`));
|
|
70
|
+
changes.push({
|
|
71
|
+
type: devkit_1.ChangeType.Insert,
|
|
72
|
+
index: firstRoute.end,
|
|
73
|
+
text: `\n<Route path="/${names.fileName}" render={() => <${names.className} />} />`,
|
|
74
|
+
});
|
|
75
|
+
if (firstLink) {
|
|
76
|
+
const parentLi = (0, ast_utils_1.findClosestOpening)('li', firstLink);
|
|
77
|
+
if (parentLi) {
|
|
78
|
+
changes.push({
|
|
79
|
+
type: devkit_1.ChangeType.Insert,
|
|
80
|
+
index: parentLi.end,
|
|
81
|
+
text: `\n<li><Link to="/${names.fileName}">${names.className}</Link></li>`,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
changes.push({
|
|
86
|
+
type: devkit_1.ChangeType.Insert,
|
|
87
|
+
index: firstLink.parent.end,
|
|
88
|
+
text: `\n<Link to="/${names.fileName}">${names.className}</Link>`,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return changes;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.addRemoteRoute = addRemoteRoute;
|
|
96
|
+
//# sourceMappingURL=mfe-ast-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mfe-ast-utils.js","sourceRoot":"","sources":["../../../../../packages/react/src/mfe/mfe-ast-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NormalModuleReplacementPlugin } from 'webpack';
|
|
2
|
+
export interface SharedLibraryConfig {
|
|
3
|
+
singleton: boolean;
|
|
4
|
+
strictVersion: boolean;
|
|
5
|
+
requiredVersion: string;
|
|
6
|
+
eager: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function shareWorkspaceLibraries(libraries: string[], tsConfigPath?: string): {
|
|
9
|
+
getAliases: () => any[];
|
|
10
|
+
getLibraries: () => void;
|
|
11
|
+
getReplacementPlugin: () => NormalModuleReplacementPlugin;
|
|
12
|
+
} | {
|
|
13
|
+
getAliases: () => {};
|
|
14
|
+
getLibraries: (eager?: boolean) => Record<string, SharedLibraryConfig>;
|
|
15
|
+
getReplacementPlugin: () => NormalModuleReplacementPlugin;
|
|
16
|
+
};
|
|
17
|
+
export declare function sharePackages(packages: string[]): Record<string, SharedLibraryConfig>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sharePackages = exports.shareWorkspaceLibraries = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const webpack_1 = require("webpack");
|
|
6
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
|
|
9
|
+
function shareWorkspaceLibraries(libraries, tsConfigPath) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
if (tsConfigPath === void 0) { tsConfigPath = (_a = process.env.NX_TSCONFIG_PATH) !== null && _a !== void 0 ? _a : (0, typescript_1.getRootTsConfigPath)(); }
|
|
12
|
+
if (!(0, fs_1.existsSync)(tsConfigPath)) {
|
|
13
|
+
throw new Error(`NX MFE: TsConfig Path for workspace libraries does not exist! (${tsConfigPath})`);
|
|
14
|
+
}
|
|
15
|
+
const tsConfig = (0, typescript_1.readTsConfig)(tsConfigPath);
|
|
16
|
+
const tsconfigPathAliases = (_b = tsConfig.options) === null || _b === void 0 ? void 0 : _b.paths;
|
|
17
|
+
if (!tsconfigPathAliases) {
|
|
18
|
+
return {
|
|
19
|
+
getAliases: () => [],
|
|
20
|
+
getLibraries: () => { },
|
|
21
|
+
getReplacementPlugin: () => new webpack_1.NormalModuleReplacementPlugin(/./, () => { }),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const pathMappings = [];
|
|
25
|
+
for (const [key, paths] of Object.entries(tsconfigPathAliases)) {
|
|
26
|
+
if (libraries && libraries.includes(key)) {
|
|
27
|
+
const pathToLib = (0, devkit_1.normalizePath)((0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, paths[0]));
|
|
28
|
+
pathMappings.push({
|
|
29
|
+
name: key,
|
|
30
|
+
path: pathToLib,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
getAliases: () => pathMappings.reduce((aliases, library) => (Object.assign(Object.assign({}, aliases), { [library.name]: library.path })), {}),
|
|
36
|
+
getLibraries: (eager) => pathMappings.reduce((libraries, library) => (Object.assign(Object.assign({}, libraries), { [library.name]: { requiredVersion: false, eager } })), {}),
|
|
37
|
+
getReplacementPlugin: () => new webpack_1.NormalModuleReplacementPlugin(/./, (req) => {
|
|
38
|
+
if (!req.request.startsWith('.')) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const from = req.context;
|
|
42
|
+
const to = (0, devkit_1.normalizePath)((0, devkit_1.joinPathFragments)(req.context, req.request));
|
|
43
|
+
for (const library of pathMappings) {
|
|
44
|
+
const libFolder = (0, devkit_1.normalizePath)((0, path_1.dirname)(library.path));
|
|
45
|
+
if (!from.startsWith(libFolder) && to.startsWith(libFolder)) {
|
|
46
|
+
req.request = library.name;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.shareWorkspaceLibraries = shareWorkspaceLibraries;
|
|
53
|
+
function sharePackages(packages) {
|
|
54
|
+
const pkgJsonPath = (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, 'package.json');
|
|
55
|
+
if (!(0, fs_1.existsSync)(pkgJsonPath)) {
|
|
56
|
+
throw new Error('NX MFE: Could not find root package.json to determine dependency versions.');
|
|
57
|
+
}
|
|
58
|
+
const pkgJson = JSON.parse((0, fs_1.readFileSync)(pkgJsonPath, 'utf-8'));
|
|
59
|
+
return packages.reduce((shared, pkgName) => (Object.assign(Object.assign({}, shared), { [pkgName]: {
|
|
60
|
+
singleton: true,
|
|
61
|
+
strictVersion: true,
|
|
62
|
+
requiredVersion: pkgJson.dependencies[pkgName],
|
|
63
|
+
} })), {});
|
|
64
|
+
}
|
|
65
|
+
exports.sharePackages = sharePackages;
|
|
66
|
+
//# sourceMappingURL=webpack-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpack-utils.js","sourceRoot":"","sources":["../../../../../packages/react/src/mfe/webpack-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SharedLibraryConfig } from './webpack-utils';
|
|
2
|
+
export declare type MFELibrary = {
|
|
3
|
+
type: string;
|
|
4
|
+
name: string;
|
|
5
|
+
};
|
|
6
|
+
export declare type MFERemotes = string[] | [remoteName: string, remoteUrl: string][];
|
|
7
|
+
export interface MFEConfig {
|
|
8
|
+
name: string;
|
|
9
|
+
remotes?: string[];
|
|
10
|
+
library?: MFELibrary;
|
|
11
|
+
exposes?: Record<string, string>;
|
|
12
|
+
shared?: (libraryName: string, library: SharedLibraryConfig) => undefined | false | SharedLibraryConfig;
|
|
13
|
+
}
|
|
14
|
+
export declare function withModuleFederation(options: MFEConfig): Promise<(config: any) => any>;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withModuleFederation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const webpack_utils_1 = require("./webpack-utils");
|
|
6
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
7
|
+
const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
|
|
8
|
+
const file_utils_1 = require("nx/src/project-graph/file-utils");
|
|
9
|
+
const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");
|
|
10
|
+
function recursivelyResolveWorkspaceDependents(projectGraph, target, seenTargets = new Set()) {
|
|
11
|
+
var _a;
|
|
12
|
+
if (seenTargets.has(target)) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
let dependencies = [target];
|
|
16
|
+
seenTargets.add(target);
|
|
17
|
+
const workspaceDependencies = ((_a = projectGraph.dependencies[target]) !== null && _a !== void 0 ? _a : []).filter((dep) => !dep.target.startsWith('npm:'));
|
|
18
|
+
if (workspaceDependencies.length > 0) {
|
|
19
|
+
for (const dep of workspaceDependencies) {
|
|
20
|
+
dependencies = [
|
|
21
|
+
...dependencies,
|
|
22
|
+
...recursivelyResolveWorkspaceDependents(projectGraph, dep.target, seenTargets),
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return dependencies;
|
|
27
|
+
}
|
|
28
|
+
function mapWorkspaceLibrariesToTsConfigImport(workspaceLibraries) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const { projects } = new devkit_1.Workspaces(devkit_1.workspaceRoot).readWorkspaceConfiguration();
|
|
31
|
+
const tsConfigPath = (_a = process.env.NX_TSCONFIG_PATH) !== null && _a !== void 0 ? _a : (0, typescript_1.getRootTsConfigPath)();
|
|
32
|
+
const tsConfig = (0, typescript_1.readTsConfig)(tsConfigPath);
|
|
33
|
+
const tsconfigPathAliases = (_b = tsConfig.options) === null || _b === void 0 ? void 0 : _b.paths;
|
|
34
|
+
if (!tsconfigPathAliases) {
|
|
35
|
+
return workspaceLibraries;
|
|
36
|
+
}
|
|
37
|
+
const mappedLibraries = [];
|
|
38
|
+
for (const lib of workspaceLibraries) {
|
|
39
|
+
const sourceRoot = projects[lib].sourceRoot;
|
|
40
|
+
let found = false;
|
|
41
|
+
for (const [key, value] of Object.entries(tsconfigPathAliases)) {
|
|
42
|
+
if (value.find((p) => p.startsWith(sourceRoot))) {
|
|
43
|
+
mappedLibraries.push(key);
|
|
44
|
+
found = true;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!found) {
|
|
49
|
+
mappedLibraries.push(lib);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return mappedLibraries;
|
|
53
|
+
}
|
|
54
|
+
function getDependentPackagesForProject(name) {
|
|
55
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
let projectGraph;
|
|
57
|
+
try {
|
|
58
|
+
projectGraph = (0, devkit_1.readCachedProjectGraph)();
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
projectGraph = yield (0, devkit_1.createProjectGraphAsync)();
|
|
62
|
+
}
|
|
63
|
+
const deps = projectGraph.dependencies[name].reduce((dependencies, dependency) => {
|
|
64
|
+
const workspaceLibraries = new Set(dependencies.workspaceLibraries);
|
|
65
|
+
const npmPackages = new Set(dependencies.npmPackages);
|
|
66
|
+
if (dependency.target.startsWith('npm:')) {
|
|
67
|
+
npmPackages.add(dependency.target.replace('npm:', ''));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
workspaceLibraries.add(dependency.target);
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
workspaceLibraries: [...workspaceLibraries],
|
|
74
|
+
npmPackages: [...npmPackages],
|
|
75
|
+
};
|
|
76
|
+
}, { workspaceLibraries: [], npmPackages: [] });
|
|
77
|
+
const seenWorkspaceLibraries = new Set();
|
|
78
|
+
deps.workspaceLibraries = deps.workspaceLibraries.reduce((workspaceLibraryDeps, workspaceLibrary) => [
|
|
79
|
+
...workspaceLibraryDeps,
|
|
80
|
+
...recursivelyResolveWorkspaceDependents(projectGraph, workspaceLibrary, seenWorkspaceLibraries),
|
|
81
|
+
], []);
|
|
82
|
+
deps.workspaceLibraries = mapWorkspaceLibrariesToTsConfigImport(deps.workspaceLibraries);
|
|
83
|
+
return deps;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function determineRemoteUrl(remote) {
|
|
87
|
+
var _a, _b, _c, _d, _e, _f;
|
|
88
|
+
const workspace = (0, file_utils_1.readWorkspaceJson)();
|
|
89
|
+
const serveTarget = (_b = (_a = workspace.projects[remote]) === null || _a === void 0 ? void 0 : _a.targets) === null || _b === void 0 ? void 0 : _b.serve;
|
|
90
|
+
if (!serveTarget) {
|
|
91
|
+
throw new Error(`Cannot automatically determine URL of remote (${remote}). Looked for property "host" in the project's "serve" target.\n
|
|
92
|
+
You can also use the tuple syntax in your webpack config to configure your remotes. e.g. \`remotes: [['remote1', '//localhost:4201']]\``);
|
|
93
|
+
}
|
|
94
|
+
const host = (_d = (_c = serveTarget.options) === null || _c === void 0 ? void 0 : _c.host) !== null && _d !== void 0 ? _d : '//localhost';
|
|
95
|
+
const port = (_f = (_e = serveTarget.options) === null || _e === void 0 ? void 0 : _e.port) !== null && _f !== void 0 ? _f : 4201;
|
|
96
|
+
return `${remote}@${host.endsWith('/') ? host.slice(0, -1) : host}:${port}/remoteEntry.js`;
|
|
97
|
+
}
|
|
98
|
+
function mapRemotes(remotes) {
|
|
99
|
+
const mappedRemotes = {};
|
|
100
|
+
for (const remote of remotes) {
|
|
101
|
+
if (Array.isArray(remote)) {
|
|
102
|
+
let [remoteName, remoteLocation] = remote;
|
|
103
|
+
if (!remoteLocation.includes('@')) {
|
|
104
|
+
remoteLocation = `${remoteName}@${remoteLocation}`;
|
|
105
|
+
}
|
|
106
|
+
if (!remoteLocation.match(/remoteEntry\.(js|mjs)$/)) {
|
|
107
|
+
remoteLocation = `${remoteLocation.endsWith('/')
|
|
108
|
+
? remoteLocation.slice(0, -1)
|
|
109
|
+
: remoteLocation}/remoteEntry.js`;
|
|
110
|
+
}
|
|
111
|
+
mappedRemotes[remoteName] = remoteLocation;
|
|
112
|
+
}
|
|
113
|
+
else if (typeof remote === 'string') {
|
|
114
|
+
mappedRemotes[remote] = determineRemoteUrl(remote);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return mappedRemotes;
|
|
118
|
+
}
|
|
119
|
+
function withModuleFederation(options) {
|
|
120
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
const reactWebpackConfig = require('../../plugins/webpack');
|
|
122
|
+
const ws = (0, file_utils_1.readWorkspaceJson)();
|
|
123
|
+
const project = ws.projects[options.name];
|
|
124
|
+
if (!project) {
|
|
125
|
+
throw Error(`Cannot find project "${options.name}". Check that the name is correct in mfe.config.js`);
|
|
126
|
+
}
|
|
127
|
+
const dependencies = yield getDependentPackagesForProject(options.name);
|
|
128
|
+
const sharedLibraries = (0, webpack_utils_1.shareWorkspaceLibraries)(dependencies.workspaceLibraries);
|
|
129
|
+
const npmPackages = (0, webpack_utils_1.sharePackages)(dependencies.npmPackages);
|
|
130
|
+
const sharedDependencies = Object.assign(Object.assign({}, sharedLibraries.getLibraries()), npmPackages);
|
|
131
|
+
if (options.shared) {
|
|
132
|
+
for (const [libraryName, library] of Object.entries(sharedDependencies)) {
|
|
133
|
+
const mappedDependency = options.shared(libraryName, library);
|
|
134
|
+
if (mappedDependency === false) {
|
|
135
|
+
delete sharedDependencies[libraryName];
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
else if (!mappedDependency) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
sharedDependencies[libraryName] = mappedDependency;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return (config) => {
|
|
145
|
+
config = reactWebpackConfig(config);
|
|
146
|
+
config.output.uniqueName = options.name;
|
|
147
|
+
config.output.publicPath = 'auto';
|
|
148
|
+
config.optimization = {
|
|
149
|
+
runtimeChunk: false,
|
|
150
|
+
minimize: false,
|
|
151
|
+
};
|
|
152
|
+
const mappedRemotes = !options.remotes || options.remotes.length === 0
|
|
153
|
+
? {}
|
|
154
|
+
: mapRemotes(options.remotes);
|
|
155
|
+
config.plugins.push(new ModuleFederationPlugin({
|
|
156
|
+
name: options.name,
|
|
157
|
+
filename: 'remoteEntry.js',
|
|
158
|
+
exposes: options.exposes,
|
|
159
|
+
remotes: mappedRemotes,
|
|
160
|
+
shared: Object.assign({}, sharedDependencies),
|
|
161
|
+
}), sharedLibraries.getReplacementPlugin());
|
|
162
|
+
return config;
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
exports.withModuleFederation = withModuleFederation;
|
|
167
|
+
//# sourceMappingURL=with-module-federation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-module-federation.js","sourceRoot":"","sources":["../../../../../packages/react/src/mfe/with-module-federation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateMfeProject = void 0;
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
function updateMfeProject(host, options) {
|
|
6
|
+
let projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.name);
|
|
7
|
+
projectConfig.targets.build.options = Object.assign(Object.assign({}, projectConfig.targets.build.options), { main: `${options.appProjectRoot}/src/main.ts`, webpackConfig: `${options.appProjectRoot}/webpack.config.js` });
|
|
8
|
+
projectConfig.targets.build.configurations.production = Object.assign(Object.assign({}, projectConfig.targets.build.configurations.production), { webpackConfig: `${options.appProjectRoot}/webpack.config.prod.js` });
|
|
9
|
+
projectConfig.targets.serve.executor = '@nrwl/react:mfe-dev-server';
|
|
10
|
+
projectConfig.targets.serve.options.port = options.devServerPort;
|
|
11
|
+
(0, devkit_1.updateProjectConfiguration)(host, options.name, projectConfig);
|
|
12
|
+
}
|
|
13
|
+
exports.updateMfeProject = updateMfeProject;
|
|
14
|
+
//# sourceMappingURL=update-mfe-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-mfe-project.js","sourceRoot":"","sources":["../../../../../packages/react/src/rules/update-mfe-project.ts"],"names":[],"mappings":";;;AACA,yCAGsB;AAEtB,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAyE;IAEzE,IAAI,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,mCAC9B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KACtC,IAAI,EAAE,GAAG,OAAO,CAAC,cAAc,cAAc,EAC7C,aAAa,EAAE,GAAG,OAAO,CAAC,cAAc,oBAAoB,GAC7D,CAAC;IACF,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,mCAChD,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,KACxD,aAAa,EAAE,GAAG,OAAO,CAAC,cAAc,yBAAyB,GAClE,CAAC;IACF,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,4BAA4B,CAAC;IACpE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IACjE,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC;AAjBD,4CAiBC"}
|
package/src/utils/versions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.babelPluginStyledComponentsVersion = exports.eslintPluginReactHooksVersion = exports.eslintPluginReactVersion = exports.eslintPluginJsxA11yVersion = exports.eslintPluginImportVersion = exports.reactTestRendererVersion = exports.reactReduxVersion = exports.reduxjsToolkitVersion = exports.testingLibraryReactHooksVersion = exports.testingLibraryReactVersion = exports.typesReactRouterDomVersion = exports.reactRouterDomVersion = exports.styledJsxVersion = exports.emotionBabelPlugin = exports.emotionReactVersion = exports.emotionStyledVersion = exports.typesStyledComponentsVersion = exports.styledComponentsVersion = exports.typesReactIsVersion = exports.typesReactDomVersion = exports.typesReactVersion = exports.reactIsVersion = exports.reactDomVersion = exports.reactVersion = exports.nxVersion = void 0;
|
|
4
|
-
exports.nxVersion = '13.10.0
|
|
4
|
+
exports.nxVersion = '13.10.0';
|
|
5
5
|
exports.reactVersion = '18.0.0';
|
|
6
6
|
exports.reactDomVersion = '18.0.0';
|
|
7
7
|
exports.reactIsVersion = '18.0.0';
|