@@ -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
+ } ;
0 commit comments