@codemoreira/esad 1.4.6-6 → 1.4.6-8
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/package.json +6 -2
- package/src/plugin/index.js +40 -26
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemoreira/esad",
|
|
3
|
-
"version": "1.4.6-
|
|
3
|
+
"version": "1.4.6-8",
|
|
4
4
|
"description": "Easy Super App Development - Zero-Config CLI and DevTools for React Native Module Federation",
|
|
5
5
|
"main": "src/plugin/index.js",
|
|
6
6
|
"types": "./src/plugin/index.d.ts",
|
|
@@ -47,7 +47,11 @@
|
|
|
47
47
|
"react-native-reanimated": "~3.16.1",
|
|
48
48
|
"form-data": "^4.0.0",
|
|
49
49
|
"fs-extra": "^11.2.0",
|
|
50
|
-
"node-fetch": "^2.7.0"
|
|
50
|
+
"node-fetch": "^2.7.0",
|
|
51
|
+
"@babel/plugin-transform-flow-strip-types": "^7.20.0",
|
|
52
|
+
"@babel/plugin-transform-private-methods": "^7.20.0",
|
|
53
|
+
"@babel/plugin-transform-private-property-in-object": "^7.20.0",
|
|
54
|
+
"@babel/plugin-transform-class-properties": "^7.20.0"
|
|
51
55
|
},
|
|
52
56
|
"devDependencies": {
|
|
53
57
|
"@rspack/core": "^1.7.9",
|
package/src/plugin/index.js
CHANGED
|
@@ -40,18 +40,17 @@ function withESAD(env, options) {
|
|
|
40
40
|
},
|
|
41
41
|
resolve: {
|
|
42
42
|
...Repack.getResolveOptions(),
|
|
43
|
+
alias: {
|
|
44
|
+
...Repack.getResolveOptions().alias,
|
|
45
|
+
'@': dirname,
|
|
46
|
+
'expo-router': path.resolve(dirname, 'node_modules/expo-router'),
|
|
47
|
+
'react-native': path.resolve(dirname, 'node_modules/react-native'),
|
|
48
|
+
},
|
|
43
49
|
extensions: [
|
|
44
50
|
'.expo.ts', '.expo.tsx', '.expo.js', '.expo.jsx',
|
|
45
51
|
'.native.ts', '.native.tsx', '.native.js', '.native.jsx',
|
|
46
52
|
...Repack.getResolveOptions().extensions,
|
|
47
53
|
],
|
|
48
|
-
alias: {
|
|
49
|
-
'@': dirname,
|
|
50
|
-
'expo-router': path.resolve(dirname, 'node_modules/expo-router'),
|
|
51
|
-
'react-native': path.resolve(dirname, 'node_modules/react-native'),
|
|
52
|
-
'react-native-web': path.resolve(dirname, 'node_modules/react-native'),
|
|
53
|
-
...Repack.getResolveOptions().alias,
|
|
54
|
-
}
|
|
55
54
|
},
|
|
56
55
|
module: {
|
|
57
56
|
rules: [
|
|
@@ -62,17 +61,37 @@ function withESAD(env, options) {
|
|
|
62
61
|
include: [
|
|
63
62
|
path.resolve(dirname, 'app'),
|
|
64
63
|
path.resolve(dirname, 'index.js'),
|
|
65
|
-
/[\\/]node_modules[\\/](expo-router|react-native|@react-native|expo-modules-core)[\\/]/
|
|
64
|
+
/[\\/]node_modules[\\/](expo-router|react-native|@react-native|expo-modules-core|@module-federation|@react-navigation|react-native-safe-area-context|react-native-screens)[\\/]/
|
|
66
65
|
],
|
|
67
66
|
use: {
|
|
68
|
-
loader: 'babel-loader',
|
|
67
|
+
loader: require.resolve('babel-loader'),
|
|
69
68
|
options: {
|
|
70
|
-
presets: [
|
|
69
|
+
presets: [
|
|
70
|
+
[
|
|
71
|
+
require.resolve('babel-preset-expo'),
|
|
72
|
+
{
|
|
73
|
+
jsxRuntime: 'automatic',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
],
|
|
77
|
+
plugins: [
|
|
78
|
+
require.resolve('@babel/plugin-transform-flow-strip-types'),
|
|
79
|
+
[require.resolve('@babel/plugin-transform-private-methods'), { loose: true }],
|
|
80
|
+
[require.resolve('@babel/plugin-transform-private-property-in-object'), { loose: true }],
|
|
81
|
+
[require.resolve('@babel/plugin-transform-class-properties'), { loose: true }]
|
|
82
|
+
],
|
|
71
83
|
babelrc: false,
|
|
72
84
|
configFile: false,
|
|
85
|
+
caller: {
|
|
86
|
+
name: 'esad-rspack',
|
|
87
|
+
platform,
|
|
88
|
+
}
|
|
73
89
|
},
|
|
74
90
|
},
|
|
75
91
|
type: 'javascript/auto',
|
|
92
|
+
resolve: {
|
|
93
|
+
fullySpecified: false,
|
|
94
|
+
}
|
|
76
95
|
},
|
|
77
96
|
...Repack.getJsTransformRules(),
|
|
78
97
|
]
|
|
@@ -91,7 +110,7 @@ function withESAD(env, options) {
|
|
|
91
110
|
'process.env.EXPO_OS': JSON.stringify(platform),
|
|
92
111
|
'process.env.EXPO_PROJECT_ROOT': JSON.stringify(dirname),
|
|
93
112
|
'process.env.EXPO_ROUTER_ABS_APP_ROOT': JSON.stringify(path.resolve(dirname, 'app')),
|
|
94
|
-
'process.env.EXPO_ROUTER_APP_ROOT': JSON.stringify('
|
|
113
|
+
'process.env.EXPO_ROUTER_APP_ROOT': JSON.stringify('../../app'), // Relative from node_modules/expo-router/_ctx.js
|
|
95
114
|
'process.env.EXPO_ROUTER_IMPORT_MODE': JSON.stringify('sync'),
|
|
96
115
|
}),
|
|
97
116
|
new ExpoModulesPlugin(),
|
|
@@ -111,6 +130,10 @@ function withESAD(env, options) {
|
|
|
111
130
|
'react-native-safe-area-context': { singleton: true, eager: true, requiredVersion: pkg.dependencies['react-native-safe-area-context'] },
|
|
112
131
|
'expo-router': { singleton: true, eager: true, requiredVersion: pkg.dependencies['expo-router'] },
|
|
113
132
|
'react-native-screens': { singleton: true, eager: true, requiredVersion: pkg.dependencies['react-native-screens'] },
|
|
133
|
+
'expo-constants': { singleton: true, eager: true, requiredVersion: pkg.dependencies['expo-constants'] },
|
|
134
|
+
'expo-linking': { singleton: true, eager: true, requiredVersion: pkg.dependencies['expo-linking'] },
|
|
135
|
+
'@module-federation/runtime': { singleton: true, eager: true },
|
|
136
|
+
'@module-federation/sdk': { singleton: true, eager: true },
|
|
114
137
|
'@codemoreira/esad/client': {
|
|
115
138
|
singleton: true,
|
|
116
139
|
eager: options.type === 'host', // Only eager in host to ensure it's available
|
|
@@ -125,21 +148,12 @@ function withESAD(env, options) {
|
|
|
125
148
|
// Add Host-specific DevServer magic for Expo
|
|
126
149
|
if (options.type === 'host') {
|
|
127
150
|
config.devServer = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const location = query ? `${target}?${query}` : target;
|
|
135
|
-
res.writeHead(302, { Location: location });
|
|
136
|
-
res.end();
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
next();
|
|
140
|
-
});
|
|
141
|
-
return middlewares;
|
|
142
|
-
},
|
|
151
|
+
proxy: [
|
|
152
|
+
{
|
|
153
|
+
context: ['/.expo/.virtual-metro-entry'],
|
|
154
|
+
pathRewrite: { '^/.expo/.virtual-metro-entry': '/index.bundle' },
|
|
155
|
+
},
|
|
156
|
+
],
|
|
143
157
|
};
|
|
144
158
|
}
|
|
145
159
|
|