web-dev-qa-db-fra.com

react-native start donnant une expression régulière invalide erreur invalide

J'ai suivi le lien suivant pour commencer avec react-native

Premiers pas avec react native

J'ai essayé de créer une application native sans expo, donc selon la documentation, j'ai suivi la commande suivante

npm install -g react-native-cli
react-native init AwesomeProject

Après l'exécution Android

react-native run-Android

Cela m'a donné l'erreur suivante sur l'émulateur

enter image description here

J'ai donc utilisé la commande start pour exécuter le serveur de métro

react-native start

Cette commande m'a donné une autre erreur dans la console

enter image description here

14
user4241989

La solution est de changer le blacklist.js fichier dans le module metro-config fichiers comme indiqué ci-dessus. Mais chaque fois que vous exécutez npm/yarn install vous devrez le modifier à nouveau.

J'ai donc trouvé une solution qui vous fera gagner du temps pour aller dans le fichier et le changer à chaque fois:

J'ai utilisé une bibliothèque qui édite des fichiers en utilisant JavaScript:

  1. Installez le module de remplacement dans le fichier:
npm install --save replace-in-file
  1. Créez un fichier au même niveau que node_module nom du dossier: metro-fix.js par exemple.

  2. Copiez collez ce script dedans:

//Load the library
const replace = require('replace-in-file');
// path for metro config file
const path = 'node_modules/metro-config/src/defaults/blacklist.js';
// creating options for editing the file
const options = [
  {
    files: path,
    from: 'modules[/',
    to: 'modules[\\/',
  },
  {
    files: path,
    from: 'react[/',
    to: 'react[\\/',
  },
  {
    files: path,
    from: 'dist[/',
    to: 'dist[\\/',
  },
];

try {
  let results;
  // looping on each option
  options.forEach(e => {
    results = replace.sync(e);
    console.log('Replacing "'+e.from+'" by "'+e.to+'"  results:', results[0].hasChanged);
  });

} catch (error) {
  console.error('Error occurred:', error);
}
  1. Maintenant, chaque fois que vous exécutez npm install lancez simplement:
node metro-fix.js

Voir Remplacer dans le fichier documents.

1
Moussaabmma

oui, passez simplement à Node version 10 et cela fonctionnera.

nvm install <version>
nvm use <version>

ça marche...... :)

1
Shekhar Kumar

J'ai résolu ce problème avec cette étape:

  1. Désinstaller le nœud v12 et installer le nœud v8.9.4
  2. réinstaller react-native-cli
  3. recréer le projet react-native init myApp --version 0.60.0
  4. react-native start

J'espère que ça aide

0
Alhaddi Mulyadi

fermer Commands Prompt et metro bundler, recommencez

0
Majid Aziz

C'est parce que la version du nœud est plus élevée.

  1. L'une des solutions est que vous pouvez facilement rétrograder la version du nœud de 12.x à 10.x ou désinstallez 12.x et installez 10.x

  2. D'un autre côté, si vous souhaitez utiliser 12.x pour un autre projet. La solution ci-dessous vous facilite donc la tâche. Vous pouvez nvm qui peut contrôler les multiples versions de node.

Alors installez d'abord nvm à partir d'ici https://github.com/coreybutler/nvm-windows/releases

Une fois installé, n'oubliez pas d'ajouter le chemin nvm à la variable système

puis nvm install 10.18.1 64

puis nvm install 12.14.1 64

pour lister toutes les versions installées nvm list

chaque fois que vous souhaitez passer d'une version à une autre, utilisez la commande

nvm use 10.18.1  OR nvm use 12.14.1
0
Deepak N

oui, je suis également confronté à ces problèmes. en fait Node.js recommandé pour la plupart des utilisateurs est la version 10.16.3 LTS. L'utilisation de la commande choco ci-dessous installera la dernière version de 12.11.0. choco install -y nodejs.install python2 jdk8

Je rétrograde Node version de 12.11.0 à 10.16.3 LTS et cela a fonctionné pour moi.

0