@module-federation/bridge-react-webpack-plugin 0.6.2 → 0.6.4

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 CHANGED
@@ -1,5 +1,18 @@
1
1
  # @module-federation/bridge-react-webpack-plugin
2
2
 
3
+ ## 0.6.4
4
+
5
+ ### Patch Changes
6
+
7
+ - d90295b: chore: adjust bridge router alias strategy to alias to router-v6 when not found react-router-dom in package.json
8
+ - @module-federation/sdk@0.6.4
9
+
10
+ ## 0.6.3
11
+
12
+ ### Patch Changes
13
+
14
+ - @module-federation/sdk@0.6.3
15
+
3
16
  ## 0.6.2
4
17
 
5
18
  ### Patch Changes
package/dist/index.cjs.js CHANGED
@@ -1648,7 +1648,7 @@ const findPackageJson = (startPath) => {
1648
1648
  }
1649
1649
  return null;
1650
1650
  };
1651
- const getBridgeRouterAlias = (originalAlias) => {
1651
+ const getDependencies = () => {
1652
1652
  const userPackageJsonPath = path.resolve(process.cwd(), "package.json");
1653
1653
  let userDependencies = {};
1654
1654
  if (fs.existsSync(userPackageJsonPath)) {
@@ -1660,28 +1660,15 @@ const getBridgeRouterAlias = (originalAlias) => {
1660
1660
  ...userPackageJson.devDependencies
1661
1661
  };
1662
1662
  }
1663
+ return userDependencies;
1664
+ };
1665
+ const reactRouterDomV5AliasPath = "@module-federation/bridge-react/dist/router-v5.es.js";
1666
+ const reactRouterDomV6AliasPath = "@module-federation/bridge-react/dist/router-v6.es.js";
1667
+ const setRouterAlias = (majorVersion, reactRouterDomPath) => {
1663
1668
  let bridgeRouterAlias = {};
1664
- let majorVersion = 0;
1665
- let reactRouterDomPath = "";
1666
- const reactRouterDomVersion = userDependencies["react-router-dom"];
1667
- if (originalAlias) {
1668
- reactRouterDomPath = originalAlias;
1669
- } else if (reactRouterDomVersion) {
1670
- majorVersion = checkVersion(reactRouterDomVersion);
1671
- reactRouterDomPath = require.resolve("react-router-dom");
1672
- } else {
1673
- reactRouterDomPath = require.resolve("react-router-dom");
1674
- }
1675
- const packageJsonPath = findPackageJson(reactRouterDomPath);
1676
- if (packageJsonPath) {
1677
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
1678
- majorVersion = checkVersion(packageJson.version);
1679
- } else {
1680
- console.warn("Unable to find package.json for react-router-dom");
1681
- }
1682
1669
  if (majorVersion === 5) {
1683
1670
  bridgeRouterAlias = {
1684
- "react-router-dom$": "@module-federation/bridge-react/dist/router-v5.es.js"
1671
+ "react-router-dom$": reactRouterDomV5AliasPath
1685
1672
  };
1686
1673
  try {
1687
1674
  require.resolve("react-router-dom/index.js");
@@ -1693,7 +1680,7 @@ const getBridgeRouterAlias = (originalAlias) => {
1693
1680
  }
1694
1681
  } else if (majorVersion === 6) {
1695
1682
  bridgeRouterAlias = {
1696
- "react-router-dom$": "@module-federation/bridge-react/dist/router-v6.es.js"
1683
+ "react-router-dom$": reactRouterDomV6AliasPath
1697
1684
  };
1698
1685
  try {
1699
1686
  require.resolve("react-router-dom/dist/index.js");
@@ -1703,15 +1690,33 @@ const getBridgeRouterAlias = (originalAlias) => {
1703
1690
  "react-router-dom/dist/index.js": reactRouterDomPath
1704
1691
  };
1705
1692
  }
1706
- } else {
1707
- console.warn("react-router-dom version is not supported");
1708
1693
  }
1709
- console.log(
1710
- "<<<<<<<<<<<<< bridgeRouterAlias >>>>>>>>>>>>>",
1711
- bridgeRouterAlias
1712
- );
1713
1694
  return bridgeRouterAlias;
1714
1695
  };
1696
+ const getBridgeRouterAlias = (originalAlias) => {
1697
+ const userDependencies = getDependencies();
1698
+ const reactRouterDomPath = originalAlias ? originalAlias : userDependencies["react-router-dom"] ? require.resolve("react-router-dom") : "";
1699
+ const packageJsonPath = reactRouterDomPath ? findPackageJson(reactRouterDomPath) : "";
1700
+ if (packageJsonPath) {
1701
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
1702
+ const majorVersion = checkVersion(packageJson.version);
1703
+ const bridgeRouterAlias = setRouterAlias(majorVersion, reactRouterDomPath);
1704
+ console.log(
1705
+ "<<<<<<<<<<<<< bridgeRouterAlias >>>>>>>>>>>>>",
1706
+ bridgeRouterAlias
1707
+ );
1708
+ return bridgeRouterAlias;
1709
+ } else {
1710
+ const bridgeRouterAlias = {
1711
+ "react-router-dom$": reactRouterDomV6AliasPath
1712
+ };
1713
+ console.log(
1714
+ "<<<<<<<<<<<<< default bridgeRouterAlias >>>>>>>>>>>>>",
1715
+ bridgeRouterAlias
1716
+ );
1717
+ return bridgeRouterAlias;
1718
+ }
1719
+ };
1715
1720
  class ReactBridgeAliasChangerPlugin {
1716
1721
  constructor(info) {
1717
1722
  __publicField(this, "alias");
package/dist/index.es.js CHANGED
@@ -1626,7 +1626,7 @@ const findPackageJson = (startPath) => {
1626
1626
  }
1627
1627
  return null;
1628
1628
  };
1629
- const getBridgeRouterAlias = (originalAlias) => {
1629
+ const getDependencies = () => {
1630
1630
  const userPackageJsonPath = path.resolve(process.cwd(), "package.json");
1631
1631
  let userDependencies = {};
1632
1632
  if (fs.existsSync(userPackageJsonPath)) {
@@ -1638,28 +1638,15 @@ const getBridgeRouterAlias = (originalAlias) => {
1638
1638
  ...userPackageJson.devDependencies
1639
1639
  };
1640
1640
  }
1641
+ return userDependencies;
1642
+ };
1643
+ const reactRouterDomV5AliasPath = "@module-federation/bridge-react/dist/router-v5.es.js";
1644
+ const reactRouterDomV6AliasPath = "@module-federation/bridge-react/dist/router-v6.es.js";
1645
+ const setRouterAlias = (majorVersion, reactRouterDomPath) => {
1641
1646
  let bridgeRouterAlias = {};
1642
- let majorVersion = 0;
1643
- let reactRouterDomPath = "";
1644
- const reactRouterDomVersion = userDependencies["react-router-dom"];
1645
- if (originalAlias) {
1646
- reactRouterDomPath = originalAlias;
1647
- } else if (reactRouterDomVersion) {
1648
- majorVersion = checkVersion(reactRouterDomVersion);
1649
- reactRouterDomPath = require.resolve("react-router-dom");
1650
- } else {
1651
- reactRouterDomPath = require.resolve("react-router-dom");
1652
- }
1653
- const packageJsonPath = findPackageJson(reactRouterDomPath);
1654
- if (packageJsonPath) {
1655
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
1656
- majorVersion = checkVersion(packageJson.version);
1657
- } else {
1658
- console.warn("Unable to find package.json for react-router-dom");
1659
- }
1660
1647
  if (majorVersion === 5) {
1661
1648
  bridgeRouterAlias = {
1662
- "react-router-dom$": "@module-federation/bridge-react/dist/router-v5.es.js"
1649
+ "react-router-dom$": reactRouterDomV5AliasPath
1663
1650
  };
1664
1651
  try {
1665
1652
  require.resolve("react-router-dom/index.js");
@@ -1671,7 +1658,7 @@ const getBridgeRouterAlias = (originalAlias) => {
1671
1658
  }
1672
1659
  } else if (majorVersion === 6) {
1673
1660
  bridgeRouterAlias = {
1674
- "react-router-dom$": "@module-federation/bridge-react/dist/router-v6.es.js"
1661
+ "react-router-dom$": reactRouterDomV6AliasPath
1675
1662
  };
1676
1663
  try {
1677
1664
  require.resolve("react-router-dom/dist/index.js");
@@ -1681,15 +1668,33 @@ const getBridgeRouterAlias = (originalAlias) => {
1681
1668
  "react-router-dom/dist/index.js": reactRouterDomPath
1682
1669
  };
1683
1670
  }
1684
- } else {
1685
- console.warn("react-router-dom version is not supported");
1686
1671
  }
1687
- console.log(
1688
- "<<<<<<<<<<<<< bridgeRouterAlias >>>>>>>>>>>>>",
1689
- bridgeRouterAlias
1690
- );
1691
1672
  return bridgeRouterAlias;
1692
1673
  };
1674
+ const getBridgeRouterAlias = (originalAlias) => {
1675
+ const userDependencies = getDependencies();
1676
+ const reactRouterDomPath = originalAlias ? originalAlias : userDependencies["react-router-dom"] ? require.resolve("react-router-dom") : "";
1677
+ const packageJsonPath = reactRouterDomPath ? findPackageJson(reactRouterDomPath) : "";
1678
+ if (packageJsonPath) {
1679
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
1680
+ const majorVersion = checkVersion(packageJson.version);
1681
+ const bridgeRouterAlias = setRouterAlias(majorVersion, reactRouterDomPath);
1682
+ console.log(
1683
+ "<<<<<<<<<<<<< bridgeRouterAlias >>>>>>>>>>>>>",
1684
+ bridgeRouterAlias
1685
+ );
1686
+ return bridgeRouterAlias;
1687
+ } else {
1688
+ const bridgeRouterAlias = {
1689
+ "react-router-dom$": reactRouterDomV6AliasPath
1690
+ };
1691
+ console.log(
1692
+ "<<<<<<<<<<<<< default bridgeRouterAlias >>>>>>>>>>>>>",
1693
+ bridgeRouterAlias
1694
+ );
1695
+ return bridgeRouterAlias;
1696
+ }
1697
+ };
1693
1698
  class ReactBridgeAliasChangerPlugin {
1694
1699
  constructor(info) {
1695
1700
  __publicField(this, "alias");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/bridge-react-webpack-plugin",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "semver": "7.6.3",
21
21
  "@types/semver": "7.5.8",
22
- "@module-federation/sdk": "0.6.2"
22
+ "@module-federation/sdk": "0.6.4"
23
23
  },
24
24
  "devDependencies": {
25
25
  "typescript": "^5.2.2",
package/src/utis.ts CHANGED
@@ -30,9 +30,7 @@ export const findPackageJson = (startPath: string): string | null => {
30
30
  return null;
31
31
  };
32
32
 
33
- export const getBridgeRouterAlias = (
34
- originalAlias: string,
35
- ): Record<string, string> => {
33
+ const getDependencies = () => {
36
34
  const userPackageJsonPath = path.resolve(process.cwd(), 'package.json');
37
35
  let userDependencies: Record<string, string> = {};
38
36
 
@@ -45,35 +43,19 @@ export const getBridgeRouterAlias = (
45
43
  ...userPackageJson.devDependencies,
46
44
  };
47
45
  }
46
+ return userDependencies;
47
+ };
48
48
 
49
- let bridgeRouterAlias = {};
50
- let majorVersion = 0;
51
- let reactRouterDomPath = '';
52
-
53
- const reactRouterDomVersion = userDependencies['react-router-dom'];
54
-
55
- if (originalAlias) {
56
- reactRouterDomPath = originalAlias;
57
- } else if (reactRouterDomVersion) {
58
- majorVersion = checkVersion(reactRouterDomVersion);
59
- reactRouterDomPath = require.resolve('react-router-dom');
60
- } else {
61
- reactRouterDomPath = require.resolve('react-router-dom');
62
- }
63
-
64
- const packageJsonPath = findPackageJson(reactRouterDomPath);
65
-
66
- if (packageJsonPath) {
67
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
68
- majorVersion = checkVersion(packageJson.version);
69
- } else {
70
- console.warn('Unable to find package.json for react-router-dom');
71
- }
49
+ const reactRouterDomV5AliasPath =
50
+ '@module-federation/bridge-react/dist/router-v5.es.js';
51
+ const reactRouterDomV6AliasPath =
52
+ '@module-federation/bridge-react/dist/router-v6.es.js';
72
53
 
54
+ const setRouterAlias = (majorVersion: number, reactRouterDomPath: string) => {
55
+ let bridgeRouterAlias = {};
73
56
  if (majorVersion === 5) {
74
57
  bridgeRouterAlias = {
75
- 'react-router-dom$':
76
- '@module-federation/bridge-react/dist/router-v5.es.js',
58
+ 'react-router-dom$': reactRouterDomV5AliasPath,
77
59
  };
78
60
  try {
79
61
  require.resolve('react-router-dom/index.js');
@@ -86,10 +68,8 @@ export const getBridgeRouterAlias = (
86
68
  }
87
69
  } else if (majorVersion === 6) {
88
70
  bridgeRouterAlias = {
89
- 'react-router-dom$':
90
- '@module-federation/bridge-react/dist/router-v6.es.js',
71
+ 'react-router-dom$': reactRouterDomV6AliasPath,
91
72
  };
92
-
93
73
  try {
94
74
  require.resolve('react-router-dom/dist/index.js');
95
75
  } catch (error) {
@@ -99,13 +79,40 @@ export const getBridgeRouterAlias = (
99
79
  'react-router-dom/dist/index.js': reactRouterDomPath,
100
80
  };
101
81
  }
102
- } else {
103
- console.warn('react-router-dom version is not supported');
104
82
  }
105
-
106
- console.log(
107
- '<<<<<<<<<<<<< bridgeRouterAlias >>>>>>>>>>>>>',
108
- bridgeRouterAlias,
109
- );
110
83
  return bridgeRouterAlias;
111
84
  };
85
+
86
+ export const getBridgeRouterAlias = (
87
+ originalAlias: string,
88
+ ): Record<string, string> => {
89
+ const userDependencies = getDependencies();
90
+ const reactRouterDomPath = originalAlias
91
+ ? originalAlias
92
+ : userDependencies['react-router-dom']
93
+ ? require.resolve('react-router-dom')
94
+ : '';
95
+ const packageJsonPath = reactRouterDomPath
96
+ ? findPackageJson(reactRouterDomPath)
97
+ : '';
98
+ // if find react-router-dom in package.json
99
+ if (packageJsonPath) {
100
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
101
+ const majorVersion = checkVersion(packageJson.version);
102
+ const bridgeRouterAlias = setRouterAlias(majorVersion, reactRouterDomPath);
103
+ console.log(
104
+ '<<<<<<<<<<<<< bridgeRouterAlias >>>>>>>>>>>>>',
105
+ bridgeRouterAlias,
106
+ );
107
+ return bridgeRouterAlias;
108
+ } else {
109
+ const bridgeRouterAlias = {
110
+ 'react-router-dom$': reactRouterDomV6AliasPath,
111
+ };
112
+ console.log(
113
+ '<<<<<<<<<<<<< default bridgeRouterAlias >>>>>>>>>>>>>',
114
+ bridgeRouterAlias,
115
+ );
116
+ return bridgeRouterAlias;
117
+ }
118
+ };