Je viens d'installer node.js & cli
- installé node.js
installé react-native-cli
npm -g react-native-cli
Et créé un «nouveau projet».
react-native init new_project
et dans ce répertoire 'new_project', je suis fatigué de voir si le bundler de métro fonctionne bien.
react-native start
Mais la commande m'a donné l'erreur suivante et le métro ne démarre pas. Un indice pour corriger cette erreur? (J'utilise Windows 10 OS.)
- commande:
C:\projects\new_proj>react-native start
error Expression régulière non valide: /(.\fixtures.|node_modules[[ ...) .react[[/node_modules.|heapCapture\bundle.js|.\tests.)$/: Classe de caractères non terminée. Exécutez CLI avec l'indicateur --verbose pour plus de détails. SyntaxError: Expression régulière non valide: /(.\fixtures.|node_modules[[ Often ]react[ewisedist[ </font>.|website\node_modules.|heapCapture\bundle.js|.\tests.)$/: Classe de caractères non terminée au nouveau RegExp ( ) à la liste noire (D: \ projects \ new_proj \ node_modules \ metro-config \ src \ defaults \ blacklist.js: 34: 10) à getBlacklistRE (D: \ projects \ new_proj \ node_modules \ react-native \ node_modules @ react-native -community \ cli \ build \ tools \ loadMetroConfig.js: 69: 59) sur getDefaultConfig (D: \ projects \ new_proj \ node_modules \ react-native \ node_modules @ react-native-community \ cli \ build \ tools \ loadMetroConfig.js : 85: 20) en charge (D:
- commande:
117
Run CLI with --verbose flag for more details.
Peut-être avez-vous oublié d'échapper à une contre-oblique. Voir stackoverflow.com/questions/14639339/… . Je ne peux pas dire sans plus de détails.Réponses:
Je viens de recevoir une erreur similaire pour la première fois aujourd'hui. Il apparaît dans
\node_modules\metro-config\src\defaults\blacklist.js
, il y a une expression régulière non valide qui devait être modifiée. J'ai changé la première expression soussharedBlacklist
de:à:
la source
Ceci est causé par le nœud v12.11.0 en raison de la façon dont il gère l'emplacement normal de deux façons de résoudre ce problème
Méthode I
Vous pouvez rétrograder vers le nœud v12.10.0, cela appliquera la bonne façon de traiter l'erreur d'analyse
Méthode II
Vous pouvez terminer correctement l'expression régulière dans votre cas en modifiant le fichier situé dans:
\node_modules\metro-config\src\defaults\blacklist.js
De:
À:
la source
metro-config
ouexpo-cli
?[Réponse rapide]
Il y a un problème avec Metro en utilisant certaines versions de NPM et Node.
Vous pouvez résoudre le problème en modifiant du code dans le fichier
\node_modules\metro-config\src\defaults\blacklist.js
.Recherchez cette variable:
et changez en ceci:
la source
.\node_modules\metro-bundler\src\blacklist.js
Vous avez deux solutions:
soit vous rétrogradez le nœud vers la version 12.10.0, soit vous pouvez modifier ce fichier pour chaque projet que vous allez créer.
node_modules / metro-config / src / defaults / blacklist.js Changez ceci:
pour ça:
la source
J'ai eu le même problème que j'ai modifié le E: \ NodeJS \ ReactNativeApp \ ExpoTest \ node_modules \ metro-config \ src \ defaults \ blacklist.js dans mon projet
de
à
cela a parfaitement fonctionné pour moi
la source
Un PR avec un correctif a été fusionné dans le référentiel du métro . Il ne reste plus qu'à attendre la prochaine version. Pour l'instant, la meilleure option est de revenir à NodeJS
v12.10.0
. Comme Brandon l'a souligné, modifier quoi que ce soit dans le cadre d'unenode_modules/
pratique est une très mauvaise pratique et ne sera pas une solution définitive.la source
Je n'ai pas metro-config dans mon projet, et maintenant?
J'ai trouvé que dans un projet assez ancien, il n'y a pas de
metro-config
fichiernode_modules
. Si c'est le cas avec vous, alors,Et faites la même étape que celle mentionnée dans les autres réponses, c'est-à-dire
Remplacer
avec
PS J'ai fait face à la même situation dans quelques projets, alors j'ai pensé que le partager pourrait aider quelqu'un.
Éditer
Selon le commentaire de @beltrone, le fichier peut également exister dans,
la source
MyProject\node_modules\metro\src\blacklist.js
. À votre santé.J'ai le même problème.
"error Expression régulière non valide: / (. \ fixtures \. | node_modules [\] react [\] dist [\]. | website \ node_modules \. | heapCapture \ bundle.js |. \ tests \. ) $ /: Unterminated classe de caractères. "
Changer l'expression régulière dans
\node_modules\metro-config\src\defaults\blacklist.js
De
À
Ce changement a résolu mon erreur.
la source
https://github.com/facebook/metro/issues/453
pour ceux qui obtiennent toujours cette erreur sans patch officiel dans react-native, expo
utilisez yarn et ajoutez ce paramètre dans package.json
la source
Aller à
et remplacez-le
à
la source
Tu peux aller à...
\ node_modules \ metro-config \ src \ defaults \ blacklist.js et changez ...
pour ça:
la source
En règle générale, je ne modifie pas les fichiers à l'intérieur
node_modules/
(ou tout ce qui n'est pas commis dans le cadre d'un référentiel) car le prochain nettoyage, construction ou mise à jour les régressera. Je l'ai certainement fait dans le passé et cela m'a mordu à plusieurs reprises. Mais cela fonctionne comme un correctif de développement local / à court terme jusqu'à ce que / à moins qu'ilmetro-config
soit mis à jour.Merci!
la source
J'ai trouvé que le regexp.source avait changé
node v12.11.0
, peut-être que le nouveauv8
moteur en était la cause. en savoir plus sur https://github.com/nodejs/node/releases/tag/v12.11.0 .la source
Corrigez-le en installant metro-config de la dernière version (0.57.0 pour l'instant), ils avaient résolu le problème:
npm installer metro-config
vous pouvez le supprimer plus tard, après les versions du module de mise à jour des gars natifs de réaction
la source
L'utilisation de fil empêche cette situation. Le fil doit utiliser
la source
Sur Windows 10, je recommande vivement d'installer Linux Bash Shell.
Voici un bon guide pour le configurer: https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/
suivez simplement les étapes, choisissez votre distribution linux et évitez autant que possible de travailler avec node sur cmd depuis une instabilité évidente.
Prenez en considération Microsoft met fortement en garde contre l'ajout ou la modification de fichiers Linux avec le logiciel Windows, comme décrit ici: howtogeek.com/261383/how-to-access-your-ubuntu-bash-files-in-windows-and-your-windows- système-drive-in-bash /
J'espère que ça aide!
la source
Je viens de mettre à jour package.json pour changer de
à
Il semble que le problème ne se produira pas dans sdk-36 !!
Ma version de nœud est v12.16.0 et os est win10 .
la source
La solution est simple, mais temporaire ...
Notez que si vous exécutez un
npm install
ou un,yarn install
vous devez à nouveau modifier le code!Alors, comment pouvons-nous exécuter cela automatiquement?
Solution permanente
Pour faire cela "automatiquement" après avoir installé vos modules de nœuds, vous pouvez utiliser
patch-package
.metro-config
fichier en résolvant l'erreur:Le fichier apparaît au format
\node_modules\metro-config\src\defaults\blacklist.js
.Modifier à partir de:
À:
npx patch-package metro-config
package.json
déclencheur, le patch:Terminé! Maintenant, ce patch sera fait à chaque
npm install
/yarn install
.Merci à https://github.com/ds300/patch-package
la source