TypeError: Eigenschaft ist nicht beschreibbar, JS Engine: Hermes Fehler TypeError: Die Eigenschaft "Standard" von undefiIOS

Programmierung für iOS
Anonymous
 TypeError: Eigenschaft ist nicht beschreibbar, JS Engine: Hermes Fehler TypeError: Die Eigenschaft "Standard" von undefi

Post by Anonymous »

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"
]
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post