Al crear una aplicación de reacción a través npx create-react-app
y ejecutarla, aparece una advertencia en DevTools (Chrome 88 y 89):
scheduler.development.js:298 [Obsoleto] SharedArrayBuffer requerirá aislamiento de origen cruzado a partir de M91, alrededor de mayo de 2021. Consulte https://developer.chrome.com/blog/habilitation-shared-array-buffer/ para obtener más detalles.
Ambiente
current version of create-react-app: 4.0.1 running from /Users/mahdi/.npm/_npx/25767/lib/node_modules/create-react-app Binaries: Node: 14.15.4 - ~/.nvm/versions/node/v14.15.4/bin/node Yarn: 1.22.4 - /usr/local/bin/yarn npm: 6.14.10 - ~/.nvm/versions/node/v14.15.4/bin/npm Browsers: Chrome: 88.0.4324.96 Edge: 87.0.664.66 Firefox: 84.0 Safari: 14.0.2 npmPackages: react: ^17.0.1 => 17.0.1 react-dom: ^17.0.1 => 17.0.1 react-scripts: Not Found npmGlobalPackages: create-react-app: Not Found
pasos para reproducir
npx create-react-app myapp
cd myapp && npm start Open
¿Alguna sugerencia para resolver esta advertencia?
Como muestra la advertencia, Chrome requerirá un aislamiento de origen cruzado a partir de la versión 91 para poder usar SharedArrayBuffer. Hasta donde sé, no hay nada que pueda hacer para resolver la advertencia, aparte de esperar una actualización de reacción.
Otros también tienen este problema, como puede ver aquí y aquí .
El problema se solucionó en esta solicitud de extracción, pero aún no se ha publicado.
Editar: ahora está arreglado en la versión 17.0.2 de reaccionar.
Actualizar las versiones de react
y react-dom
de 17.0.1
a ==> 17.0.2
podría resolver este problema.
Solo necesita ejecutar npm update
en el símbolo del sistema o bash y, con suerte, verá los cambios en su archivo package.json
. (la yarn upgrade react --latest
y la yarn upgrade react-dom --latest
si desea que la actualización persista en el package.json
)
Aquí hay un informe de git de mi aplicación después de aplicar la actualización:
En realidad, después de actualizar react-dom
a la última versión, resolví el problema, react
solo no lo resolvió:
npm i react@latest react-dom@latest
O
yarn add react@latest react-dom@latest
Este es mi paquete.json después de la actualización:
Sé que tiene su respuesta, pero si alguien solo usa: npm i react@latest react-dom@latest
no actualizará react y react-dom a la versión 17.0.2 si la versión actual de react y react-dom es 16.xx y su proyecto no es EXPULSADO. Ese comando solo se actualiza para reaccionar y reaccionar-dom a la versión 16.14.0. Si se encuentra en este caso, primero debe migrar la versión de react-script, react y react-dom a la 17: npm install react-scripts@4.0.0 react@17.0.0 react-dom@17.0.0
. Más información: https://dev.to/keonik/upgrading-to-react-17-create-react-app-edition-fe
Para aquellos que aún no están listos para actualizar a v17 (debido a otras bibliotecas heredadas), una solución simple es colocar el siguiente código en cualquier parte de su index.html
<script> // See https://github.com/facebook/react/issues/20829#issuecomment-802088260 if (!crossOriginIsolated) SharedArrayBuffer = ArrayBuffer; </script>
Actualice las versiones de react y react-dom a 17.0.2, yarn upgrade react --latest
y yarn upgrade react-dom --latest
Además, si usa @hot-loader/react-dom o react-hot-loader, debe ejecutar yarn upgrade @hot-loader/react-dom --latest
y yarn upgrade react-hot-loader --latest
también.