Mi proyecto nativo de reacción funcionó bien ayer. Pero esta mañana, después de intentar ejecutarlo de nuevo, me dio el siguiente error:
error node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js: Property body[41] of BlockStatement expected node to be of a type ["Statement"] but instead got "AssignmentExpression". Run CLI with --verbose flag for more details. TypeError: Property body[41] of BlockStatement expected node to be of a type ["Statement"] but instead got "AssignmentExpression"
Aunque no estoy seguro de lo que significa. ¿Cómo puedo solucionar este problema?
Aparentemente, puede ser un problema con la babel. Copie la carpeta @babel
(específicamente @babel/core
) que está en node_modules de un proyecto en funcionamiento en el nuevo proyecto y se ejecuta sin problemas.
Puede ser debido a una actualización que hicieron hace un par de horas.
También puede eliminar el @babel/core
actual del paquete.json e instalar esta versión npm install --save-dev @babel/core@latest
.
O usa esto:
@babel file
: https://drive.google.com/file/d/1-z_4H_z4x075unZqZD41WYUwY_hsrKox/view .
O reemplace los siguientes códigos en su archivo package.json
y luego npm install
.
"@babel/core": "~7.14.0", "@babel/compat-data": "~7.14.0", "@babel/generator": "~7.14.0", "@babel/helper-compilation-targets": "~7.14.0", "@babel/helper-create-class-features-plugin": "~7.14.0", "@babel/helper-create-regexp-features-plugin": "~7.14.0", "@babel/helper-member-expression-to-functions": "~7.14.0", "@babel/helper-module-transforms": "~7.14.0", "@babel/helper-replace-supers": "~7.14.0", "@babel/plugin-transform-react-display-name": "~7.14.0", "@babel/plugin-transform-runtime": "~7.14.0", "@babel/types": "~7.14.0",
copiar @babel de algún otro proyecto y pegarlo en node_modules es la única solución por ahora
Esto parece ser un error con 7.15.0 de Babel para el que están haciendo una prueba de regresión nativa E2E React .
Hace unas horas han lanzado el fix . Se debe a un cambio en@babel/plugin-transform-react-display-name que se revirtió en 7.15.1
. Con esa solución, debería poder eliminar las entradas adicionales en el paquete.json de mi respuesta original y, en su lugar, hacer lo siguiente.
npm install --save-dev @babel/core@latest
Desafortunadamente, simplemente degradar @babel/core
a 7.14 no será suficiente porque parece extraer las dependencias más recientes para los otros componentes. En cambio, lo que debe hacer es bloquear @babel/core
y cualquier otro componente de Babel en el que esté trabajando que esté obligando @babel/types
a ir a 7.15.0
Aquí está la sección relevante que tenía en mi paquete.json
"@babel/core": "~7.14.0", "@babel/compat-data": "~7.14.0", "@babel/generator": "~7.14.0", "@babel/helper-compilation-targets": "~7.14.0", "@babel/helper-create-class-features-plugin": "~7.14.0", "@babel/helper-create-regexp-features-plugin": "~7.14.0", "@babel/helper-member-expression-to-functions": "~7.14.0", "@babel/helper-module-transforms": "~7.14.0", "@babel/helper-replace-supers": "~7.14.0", "@babel/plugin-transform-react-display-name": "~7.14.0", "@babel/plugin-transform-runtime": "~7.14.0", "@babel/types": "~7.14.0",
Simplemente reemplace todo eso y realice una instalación de npm install
y deje que intente resolver y probar su escenario nuevamente. Si aún falla, solo mire package-lock.json y localice 7.15.0
y ajuste la dependencia en consecuencia
Con este enfoque, no necesita "recuperarse" de un archivo zip.
Fija @babel/plugin-transform-react-display-name
a 7.14.5
.
Puede hacerlo agregando esto a su paquete.json si su administrador de paquetes admite resolutions
.
"resolutions": { "@babel/plugin-transform-react-display-name": "7.14.5" }
Gracias a facebook/react-native#31960
el problema se debe a una actualización de babel que afectó al proyecto RN. copie @babel de algún otro proyecto y péguelo en node_modules o descargue la carpeta @babel desde aquí y reemplace la carpeta existente en node_modules. Descargar Babel
Y correr
npm start --reset-cache
Me ha surgido esto cuando cambio las ramas de git y necesito hacer una instalación de hilo. Me gusta el comentario para cambiar la versión de bable ya que también estoy en 7.15 y lo intentaré la próxima vez que ocurra...
Para evitar esto, he logrado:
mi script de limpieza
#!/bin/bash echo "clean'n android" cd ./android && ./gradlew clean cd .. rm -rf ./node_modules yarn cache clean rm ./yarn.lock rm -rf $TMPDIR/react-* rm -rf $TMPDIR/metro-builder-cache-* yarn install