Anonymous
TypeError: Eigenschaft ist nicht beschreibbar, JS Engine: Hermes Fehler TypeError: Die Eigenschaft "Standard" von undefi
Post
by Anonymous » 19 Aug 2025, 22:10
Ich baue eine Anwendung mit React Native in der Monorepo -Struktur. Ich war vor dem folgenden
Problem konfrontiert: < /p>
Code: Select all
ERROR node_modules/expo-router/_ctx.android.js:Invalid call at line 2: process.env.EXPO_ROUTER_APP_ROOT
< /code>
Erstes Argument von Request.context sollte eine Zeichenfolge sein, in der das Verzeichnis erforderlich ist. import { registerRootComponent } from 'expo';
import { ExpoRoot } from 'expo-router';
export function App() {
const ctx = require.context('./app');
return ;
}
try {
registerRootComponent(App);
} catch (e) {
console.error("App registry failed:", e);
}
< /code>
Nachdem das ursprüngliche [url=viewtopic.php?t=26065]Problem[/url] gelöst und erfolgreich gebündelt wurde. Als ich jedoch versuchte, die App zu öffnen, erschienen die folgenden Probleme < /p>
ERROR ExceptionsManager should be set up after React DevTools to avoid console.error arguments mutation
ERROR TypeError: property is not writable, js engine: hermes
ERROR TypeError: Cannot read property 'default' of undefined, js engine: hermes
ERROR TypeError: property is not writable, js engine: hermes
ERROR TypeError: Cannot read property 'default' of undefined, js engine: hermes
< /code>
Folgendes ist mein babel.config.js < /p>
module.exports = function (api) {
api.cache(true);
process.env.EXPO_ROUTER_APP_ROOT = "./app";
return {
presets: ['babel-preset-expo'],
plugins: ['expo-router/babel'],
};
};
< /code>
Meine Metro.config.cjs < /p>
enter code hereconst { getDefaultConfig } = require('@expo/metro-config');
const path = require('path');
const projectRoot = __dirname;
const monorepoRoot = path.resolve(projectRoot, '../..');
// ✅ Shared monorepo packages
const monorepoPackages = {
'@trungthao/domain': path.resolve(monorepoRoot, 'Packages/Domain'),
};
// ✅ Metro config
const config = getDefaultConfig(projectRoot);
// ✅ 1. Watch local and shared folders
config.watchFolders = [projectRoot, ...Object.values(monorepoPackages)];
// ✅ 2. Handle symlinks properly
config.resolver.extraNodeModules = new Proxy({}, {
get: (_, name) =>
name in monorepoPackages
? monorepoPackages[name]
: path.join(monorepoRoot, 'node_modules', name),
});
// ✅ 3. Module resolution priority
config.resolver.nodeModulesPaths = [
path.resolve(projectRoot, 'node_modules'),
path.resolve(monorepoRoot, 'node_modules'),
];
// ✅ 4. Explicit entry point
config.entryFile = 'index.tsx';
module.exports = config;
< /code>
Und mein Paket.json: < /p>
{
"name": "mobileapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"build": "expo export",
"test": "jest",
"eas-build-post-install": "cd ../../Packages/Domain && npm install && npm run build"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "module",
"dependencies": {
"@expo/metro-config": "^0.20.15",
"@expo/vector-icons": "^14.1.0",
"@gorhom/bottom-sheet": "^5.1.4",
"@ptomasroos/react-native-multi-slider": "^2.2.2",
"@react-native-async-storage/async-storage": "2.1.2",
"@react-native-community/datetimepicker": "^8.4.1",
"@react-navigation/bottom-tabs": "^7.2.0",
"@react-navigation/native": "^7.0.14",
"@reduxjs/toolkit": "^2.7.0",
"@trungthao/domain": "*",
"bcryptjs": "^3.0.2",
"cors": "^2.8.5",
"dotenv": "^16.4.1",
"expo": "53.0.13",
"expo-blur": "~14.1.5",
"expo-constants": "~17.1.6",
"expo-dev-client": "~5.2.2",
"expo-device": "~7.1.4",
"expo-document-picker": "~13.1.6",
"expo-file-system": "^18.1.10",
"expo-font": "~13.3.1",
"expo-haptics": "~14.1.4",
"expo-image": "~2.2.1",
"expo-image-manipulator": "^13.1.7",
"expo-image-picker": "^16.1.4",
"expo-linear-gradient": "~14.1.5",
"expo-linking": "~7.1.4",
"expo-media-library": "^17.1.7",
"expo-notifications": "~0.31.3",
"expo-router": "~5.1.1",
"expo-screen-orientation": "~8.1.7",
"expo-splash-screen": "~0.30.9",
"expo-status-bar": "~2.2.3",
"expo-symbols": "~0.4.5",
"expo-system-ui": "~5.0.9",
"expo-web-browser": "~14.2.0",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-native": "0.79.4",
"react-native-gesture-handler": "~2.24.0",
"react-native-reanimated": "~3.17.4",
"react-native-reanimated-color-picker": "^0.0.11",
"react-native-safe-area-context": "^5.4.0",
"react-native-screens": "~4.11.1",
"react-native-status-bar-height": "^2.6.0",
"react-native-svg": "15.11.2",
"react-native-web": "^0.20.0",
"react-native-webview": "13.13.5",
"react-native-wheel-color-picker": "^1.3.1",
"react-redux": "^9.2.0",
"reanimated-color-picker": "^4.0.1"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@types/react": "~19.0.10",
"@types/react-native": "^0.72.8",
"@types/react-test-renderer": "^19.0.0",
"babel-plugin-module-resolver": "^5.0.2",
"jest": "^29.2.1",
"jest-expo": "~53.0.7",
"react-test-renderer": "19.0.0",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.8.3"
},
"expo": {
"plugins": [
"expo-router"
]
}
}
1755634201
Anonymous
Ich baue eine Anwendung mit React Native in der Monorepo -Struktur. Ich war vor dem folgenden [url=viewtopic.php?t=26065]Problem[/url] konfrontiert: < /p> [code]ERROR node_modules/expo-router/_ctx.android.js:Invalid call at line 2: process.env.EXPO_ROUTER_APP_ROOT < /code> Erstes Argument von Request.context sollte eine Zeichenfolge sein, in der das Verzeichnis erforderlich ist. import { registerRootComponent } from 'expo'; import { ExpoRoot } from 'expo-router'; export function App() { const ctx = require.context('./app'); return ; } try { registerRootComponent(App); } catch (e) { console.error("App registry failed:", e); } < /code> Nachdem das ursprüngliche [url=viewtopic.php?t=26065]Problem[/url] gelöst und erfolgreich gebündelt wurde. Als ich jedoch versuchte, die App zu öffnen, erschienen die folgenden Probleme < /p> ERROR ExceptionsManager should be set up after React DevTools to avoid console.error arguments mutation ERROR TypeError: property is not writable, js engine: hermes ERROR TypeError: Cannot read property 'default' of undefined, js engine: hermes ERROR TypeError: property is not writable, js engine: hermes ERROR TypeError: Cannot read property 'default' of undefined, js engine: hermes < /code> Folgendes ist mein babel.config.js < /p> module.exports = function (api) { api.cache(true); process.env.EXPO_ROUTER_APP_ROOT = "./app"; return { presets: ['babel-preset-expo'], plugins: ['expo-router/babel'], }; }; < /code> Meine Metro.config.cjs < /p> enter code hereconst { getDefaultConfig } = require('@expo/metro-config'); const path = require('path'); const projectRoot = __dirname; const monorepoRoot = path.resolve(projectRoot, '../..'); // ✅ Shared monorepo packages const monorepoPackages = { '@trungthao/domain': path.resolve(monorepoRoot, 'Packages/Domain'), }; // ✅ Metro config const config = getDefaultConfig(projectRoot); // ✅ 1. Watch local and shared folders config.watchFolders = [projectRoot, ...Object.values(monorepoPackages)]; // ✅ 2. Handle symlinks properly config.resolver.extraNodeModules = new Proxy({}, { get: (_, name) => name in monorepoPackages ? monorepoPackages[name] : path.join(monorepoRoot, 'node_modules', name), }); // ✅ 3. Module resolution priority config.resolver.nodeModulesPaths = [ path.resolve(projectRoot, 'node_modules'), path.resolve(monorepoRoot, 'node_modules'), ]; // ✅ 4. Explicit entry point config.entryFile = 'index.tsx'; module.exports = config; < /code> Und mein Paket.json: < /p> { "name": "mobileapp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "expo start", "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", "build": "expo export", "test": "jest", "eas-build-post-install": "cd ../../Packages/Domain && npm install && npm run build" }, "keywords": [], "author": "", "license": "ISC", "type": "module", "dependencies": { "@expo/metro-config": "^0.20.15", "@expo/vector-icons": "^14.1.0", "@gorhom/bottom-sheet": "^5.1.4", "@ptomasroos/react-native-multi-slider": "^2.2.2", "@react-native-async-storage/async-storage": "2.1.2", "@react-native-community/datetimepicker": "^8.4.1", "@react-navigation/bottom-tabs": "^7.2.0", "@react-navigation/native": "^7.0.14", "@reduxjs/toolkit": "^2.7.0", "@trungthao/domain": "*", "bcryptjs": "^3.0.2", "cors": "^2.8.5", "dotenv": "^16.4.1", "expo": "53.0.13", "expo-blur": "~14.1.5", "expo-constants": "~17.1.6", "expo-dev-client": "~5.2.2", "expo-device": "~7.1.4", "expo-document-picker": "~13.1.6", "expo-file-system": "^18.1.10", "expo-font": "~13.3.1", "expo-haptics": "~14.1.4", "expo-image": "~2.2.1", "expo-image-manipulator": "^13.1.7", "expo-image-picker": "^16.1.4", "expo-linear-gradient": "~14.1.5", "expo-linking": "~7.1.4", "expo-media-library": "^17.1.7", "expo-notifications": "~0.31.3", "expo-router": "~5.1.1", "expo-screen-orientation": "~8.1.7", "expo-splash-screen": "~0.30.9", "expo-status-bar": "~2.2.3", "expo-symbols": "~0.4.5", "expo-system-ui": "~5.0.9", "expo-web-browser": "~14.2.0", "react": "19.0.0", "react-dom": "19.0.0", "react-native": "0.79.4", "react-native-gesture-handler": "~2.24.0", "react-native-reanimated": "~3.17.4", "react-native-reanimated-color-picker": "^0.0.11", "react-native-safe-area-context": "^5.4.0", "react-native-screens": "~4.11.1", "react-native-status-bar-height": "^2.6.0", "react-native-svg": "15.11.2", "react-native-web": "^0.20.0", "react-native-webview": "13.13.5", "react-native-wheel-color-picker": "^1.3.1", "react-redux": "^9.2.0", "reanimated-color-picker": "^4.0.1" }, "devDependencies": { "@babel/core": "^7.25.2", "@types/react": "~19.0.10", "@types/react-native": "^0.72.8", "@types/react-test-renderer": "^19.0.0", "babel-plugin-module-resolver": "^5.0.2", "jest": "^29.2.1", "jest-expo": "~53.0.7", "react-test-renderer": "19.0.0", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.8.3" }, "expo": { "plugins": [ "expo-router" ] } } [/code]