Après la mise à jour de Gatsby de 2.17.7 à 2.18.4, l'exécution de tout type de commande gatsby provoque une erreur. Cependant, il n'y a littéralement aucun contexte.
> gatsby clean
The above error occurred in the <StoreStateProvider> component:
in StoreStateProvider
in App
React will try to recreate this component tree from scratch using the error boundary you provided, App.
Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.
> gatsby build
The above error occurred in the <StoreStateProvider> component:
...
Malheureusement, je ne peux pas exécuter gatsby info --clipboard
, car il plante avec la même erreur StateStoreProvider
que les autres commandes. J'ai à nouveau rétabli ma version de Gatsby et exécuté cette commande. Notez que la version de Gatsby dans la sortie ci-dessous est incorrecte .
System:
OS: Windows 10
CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Binaries:
npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD
Languages:
Python: 2.7.16 - C:\Python27\python.EXE
Browsers:
Edge: 44.18362.267.0
npmPackages:
gatsby: ^2.17.7 => 2.17.7
gatsby-source-apiserver: ^2.1.4 => 2.1.4
Je rencontre le même problème après la mise à jour de la 2.17.10 à la 2.18.4
Merci d'avoir signalé!
Pourriez-vous également essayer de mettre à jour gatsby-cli? Si cela ne vous aide pas, ce serait vraiment utile si vous pouviez nous fournir un référentiel de reproduction.
Je vous remercie! :cœur violet:
Je n'ai pas réellement installé le CLI globalement. Le projet repose sur des commandes npm run <command>
qui exécutent à leur tour gatsby <command>
, en utilisant la version installée localement de Gatsby.
En utilisant ce modèle, les gens ne sont pas obligés de jeter sur leur machine une dépendance globale. (Ce qui peut devenir moche si vous travaillez sur plusieurs projets, qui nécessitent potentiellement des versions différentes)
J'ai eu un problème similaire plus tôt aujourd'hui, ce qui a fonctionné pour moi était de mettre à jour react, react-dom et gatsby, effacer node_modules et package-lock.json. Enfin, je lance à nouveau npm install et tout a bien fonctionné
La mise react
jour de react-dom
, ainsi que de Gatsby, semble fonctionner. Gatsby ne devrait-il pas répertorier les versions correctes de React avec lesquelles il est compatible?
Hier, j'ai passé une demi-journée juste à découvrir que dans mon cas, gatsby build / develop fonctionne bien lorsque deps est installé avec du fil.
On dirait que cela a à voir avec un problème de compatibilité entre React et Gatsby. Si vous installez des dépendances à partir de zéro (sans fichier de verrouillage), votre gestionnaire de paquets (yarn ou npm) obtiendra simplement la dernière version (autorisée par les restrictions dans package.json).
Dans mon cas, la version de réaction a été verrouillée dans mon package-lock.json
, elle n'a donc pas été mise à jour avec Gatsby, même sur une nouvelle installation.
Je rencontre le même problème. J'ai mis à jour gatsby, gatsby-cli, react et react-dom sans succès. Existe-t-il une solution définitive?
EDIT: J'ai supprimé gatsby et gatsby-cli et les ai réinstallés individuellement et cela semble l'avoir corrigé. Problème étrange.
J'ai touché ce problème. C'est parce qu'il y a deux versions de react installées. Exécutez un npm ls react
pour les voir. J'ai une version de react spécifiée dans mon package.json, et ressemble à gatsby / gatsby-cli 2.18.5 a une version différente de react.
J'ai appris le problème sur cette page .
Je tente toujours de résoudre le problème ...
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer react
, react-dom
et gatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).
npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":
[email protected] <redacted the filepath>
├─┬ [email protected]
│ └─┬ [email protected]
│ └── [email protected] deduped
└── [email protected]
Bien que je sois débloqué pour le moment, j'ai toujours des inquiétudes:
1) Deux versions de react existent encore? (Je ne suis pas sûr), même si c'est la même version maintenant
2) Les futures mises à jour de Gatsby causeront-elles à nouveau ce problème?
Je n'ai pas de réponses, mais exprimez mes inquiétudes à l'équipe de Gatsby.
Je suis sûr que npm ls
n'est qu'un outil pour vous aider à comprendre l'arborescence de dépendances de votre projet. Il n'y a probablement qu'une seule copie de react installée. Vous pouvez dans le dossier node_modules
pour vous assurer que ...
J'ai eu le même problème après la mise à jour de gatsby. J'ai rétrogradé à ma version précédente "gatsby": "^ 2.13.73" qui est plusieurs versions en arrière mais cela a résolu le problème.
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer
react
,react-dom
etgatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).
npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":[email protected] <redacted the filepath> ├─┬ [email protected] │ └─┬ [email protected] │ └── [email protected] deduped └── [email protected]
Cela a fonctionné pour moi. Merci!
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer
react
,react-dom
etgatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).
npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":[email protected] <redacted the filepath> ├─┬ [email protected] │ └─┬ [email protected] │ └── [email protected] deduped └── [email protected]
Idem pour ce qui précède, cette solution a aussi résolu les choses pour moi.
J'ai résolu le problème avec succès en mettant à niveau react et react-dom vers 16.12.0, puis en mettant à niveau gatsby vers 2.18.7.
Important: assurez-vous d'exécuter "gatsby clean" après la mise à niveau de react, react-dom et gatsby.
La mise à jour de gatsby vers la version 2.18.7 comme suggéré par @clarmso a fait l'affaire pour moi (react est à 16.12.0).
Avoir également ce même problème. Réagir et gatsby mis à jour mais ayant toujours les mêmes problèmes. Également essayé de nettoyer après la mise à jour, le problème persiste.
"gatsby": "^ 2.18.11"
"réagir": "^ 16.12.0"
"react-dom": "^ 16.12.0"
Avoir également ce même problème. Réagir et gatsby mis à jour mais ayant toujours les mêmes problèmes. Également essayé de nettoyer après la mise à jour, le problème persiste.
"gatsby": "^ 2.18.11"
"réagir": "^ 16.12.0"
"react-dom": "^ 16.12.0"
Pareil pour moi. Jusqu'à ce que hier a bien fonctionné
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer
react
,react-dom
etgatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).
npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":[email protected] <redacted the filepath> ├─┬ [email protected] │ └─┬ [email protected] │ └── [email protected] deduped └── [email protected]
Cela a fonctionné pour moi aussi. Est-ce que cela est en cours d'élaboration pour une solution permanente?
En raison de ces mises à jour, je reçois maintenant plus d'avertissements étranges de StoreStateProvider et des choses aléatoires dans Contentful revenant comme nulles même si elles sont là.
Je ne sais pas ce qui se passe mais je vais devoir garder ça sur une branche pour l'instant
Avoir également ce même problème. Réagir et gatsby mis à jour mais ayant toujours les mêmes problèmes. Également essayé de nettoyer après la mise à jour, le problème persiste.
"gatsby": "^ 2.18.11"
"réagir": "^ 16.12.0"
"react-dom": "^ 16.12.0"
Suppression du dossier node_modules et du fichier package-lock.json. Ran npm installer et tout bon à nouveau.
Mon expérience était une combinaison des commentaires ci-dessus. Depuis que j'ai supprimé le dossier node_modules et que j'avais des plugins gatsby, le npm ne fonctionnait pas. L'installation de fil l'a finalement corrigé.
J'ai résolu ce problème en réinstallant react
, react-dom
et gatsby
. (https://github.com/gatsbyjs/gatsby/issues/19827#issuecomment-559898690)
avant
react v16.11.0
react-dom v16.11.0
gatsby v2.17.11
après
react v16.12.0
react-dom v16.12.0
gatsby v2.18.12
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer
react
,react-dom
etgatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).
npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":[email protected] <redacted the filepath> ├─┬ [email protected] │ └─┬ [email protected] │ └── [email protected] deduped └── [email protected]
Merci, ça a marché pour moi 🍾
Personnellement, je dois supprimer le dossier node_modules
et package-lock.json
Ensuite, je mets à jour react
, react-dom
et gatsby
:
"react": "^16.12.0",
"react-dom": "^16.12.0",
"gatsby": "^2.18.17",
N'oubliez pas de mettre à jour gatsby-cli
vers la dernière version et d'exécuter un gatsby clean
Après cela, gatsby develop
fonctionne comme un charme!
J'ai trouvé que le problème ne se produit que lorsque l'enregistreur gatsby par défaut est utilisé. L'enregistreur particulier qui sera utilisé est contrôlé via le processus GATSBY_LOGGER env . Le problème n'est pas reproductible si le journal par défaut est modifié par exemple avec le journal json.
export GATSBY_LOGGER=["json"]
npm i && npm run start
Passer à yurnalist
/ json
Gatsby Logger corrige un problème pour moi
export GATSBY_LOGGER=["yurnalist"]
J'ai rencontré ce problème aujourd'hui lors de l'exécution de gatsby develop
sur un projet plus ancien (la dernière exécution de gatsby develop était à l'automne)
J'ai corrigé en combinant les suggestions ci-dessus (très utiles!).
Peut confirmer que cela a fonctionné:
gatsby clean
- a commencé avec ceci pour voir si cela s'est résolunode_modules
npm install
Cela n'a pas été résolu à ce stade, j'ai donc suivi les conseils pour le faire:
npm uninstall react react-dom gatsby
npm install react react-dom gatsby
Cela a parfaitement fonctionné.
supprimé package-lock.json
noeud_modules supprimés
a couru npm i
a travaillé pour moi: D
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer
react
,react-dom
etgatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).
npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":[email protected] <redacted the filepath> ├─┬ [email protected] │ └─┬ [email protected] │ └── [email protected] deduped └── [email protected]
Merci pour la solution! C'était un bloqueur majeur pour moi. Cela n'a pas fonctionné au départ, mais j'ai également réinstallé gatsby-cli
. Après cela, cela fonctionne très bien.
La description
Après la mise à jour de Gatsby de 2.17.7 à 2.18.4, l'exécution de tout type de commande gatsby provoque une erreur. Cependant, il n'y a littéralement aucun contexte.
> gatsby clean The above error occurred in the <StoreStateProvider> component: in StoreStateProvider in App React will try to recreate this component tree from scratch using the error boundary you provided, App. Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.
> gatsby build The above error occurred in the <StoreStateProvider> component: ...
Environnement
Malheureusement, je ne peux pas exécuter
gatsby info --clipboard
, car il plante avec la même erreurStateStoreProvider
que les autres commandes. J'ai à nouveau rétabli ma version de Gatsby et exécuté cette commande. Notez que la version de Gatsby dans la sortie ci-dessous est incorrecte .System: OS: Windows 10 CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz Binaries: npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD Languages: Python: 2.7.16 - C:\Python27\python.EXE Browsers: Edge: 44.18362.267.0 npmPackages: gatsby: ^2.17.7 => 2.17.7 gatsby-source-apiserver: ^2.1.4 => 2.1.4
J'ai fait face au même problème! La solution qui m'aide est d'installer yarn et d'ajouter le champ de résolutions à votre package.json
https://yarnpkg.com/lang/en/docs/selective-version-resolutions/
L'erreur était le résultat de gatsby-cli
utilisant react
avec ink
pour rendre la nouvelle interface. Une mauvaise correspondance de versioning entre la version react
un projet et celle requise par gatsby
est la cause de ce problème.
L'installation globale de gatsby-cli
(ce que nous recommandons) devrait éviter ces problèmes pour autant que je sache. Néanmoins, fermez ceci car il n'y a rien à corriger dans gatsby
à ce sujet.
Merci beaucoup à vous tous! 💜
Hier, j'ai passé une demi-journée juste à découvrir que dans mon cas, gatsby build / develop fonctionne bien lorsque deps est installé avec du fil.
En fait, l'utilisation de fil a résolu le problème pour moi aussi
Le simple fait d'exécuter npm update
résolu le problème pour moi
L'installation globale de gatsby-cli (ce que nous recommandons) devrait éviter ces problèmes pour autant que je sache. Néanmoins, fermez ceci car il n'y a rien à corriger dans gatsby à ce sujet.
Cela n'a pas fonctionné pour moi. Le passage de l'enregistreur à yurnalist
ou json
comme mentionné ci-dessus l'a fait. J'ai également supprimé les dossiers public
, .cache
et node_modules
.
Sortie de la version gatsby:
gatsby -v
Gatsby CLI version: 2.8.27
Gatsby version: 2.18.25
Voici mes dépendances si curieuses:
"dependencies": {
"@emotion/core": "^10.0.27",
"@emotion/styled": "^10.0.27",
"gatsby": "^2.18.25",
"gatsby-image": "^2.2.39",
"gatsby-plugin-emotion": "^4.1.21",
"gatsby-plugin-google-analytics": "^2.1.33",
"gatsby-plugin-manifest": "^2.2.37",
"gatsby-plugin-netlify": "^2.1.31",
"gatsby-plugin-offline": "^3.0.32",
"gatsby-plugin-react-helmet": "^3.1.21",
"gatsby-plugin-sharp": "^2.3.13",
"gatsby-plugin-web-font-loader": "^1.0.4",
"gatsby-remark-images": "^3.1.42",
"gatsby-remark-prismjs": "^3.3.30",
"gatsby-remark-reading-time": "^1.1.0",
"gatsby-source-filesystem": "^2.1.46",
"gatsby-transformer-remark": "^2.6.48",
"gatsby-transformer-sharp": "^2.3.13",
"prism-themes": "^1.3.0",
"prismjs": "^1.19.0",
"prop-types": "^15.7.2",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^5.2.1",
"typeface-karla": "0.0.72"
},
Voici l'erreur que je reçois:
gatsby develop
ERROR
The above error occurred in the <StoreStateProvider> component:
in StoreStateProvider
in App
React will try to recreate this component tree from scratch using the error boundary you provided, App.
ERROR
Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.
ERROR
UNHANDLED REJECTION Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
- react.development.js:1590 resolveDispatcher
[project]/[gatsby]/[react]/cjs/react.development.js:1590:13
- react.development.js:1618 useState
[project]/[gatsby]/[react]/cjs/react.development.js:1618:20
- context.js:17 StoreStateProvider
[project]/[gatsby]/[gatsby-cli]/lib/reporter/loggers/ink/context.js:17:41
- react-reconciler.development.js:6036 renderWithHooks
[project]/[react-reconciler]/cjs/react-reconciler.development.js:6036:18
- react-reconciler.development.js:8570 mountIndeterminateComponent
[project]/[react-reconciler]/cjs/react-reconciler.development.js:8570:13
- react-reconciler.development.js:9938 beginWork$1
[project]/[react-reconciler]/cjs/react-reconciler.development.js:9938:16
- react-reconciler.development.js:11563 Object.invokeGuardedCallbackImpl
[project]/[react-reconciler]/cjs/react-reconciler.development.js:11563:10
- react-reconciler.development.js:11740 invokeGuardedCallback
[project]/[react-reconciler]/cjs/react-reconciler.development.js:11740:31
- react-reconciler.development.js:15778 beginWork$$1
[project]/[react-reconciler]/cjs/react-reconciler.development.js:15778:7
- react-reconciler.development.js:14696 performUnitOfWork
[project]/[react-reconciler]/cjs/react-reconciler.development.js:14696:12
Aux développeurs désespérés à la recherche de problèmes qui ne devraient pas exister au départ, il suffit de:
-remove dossier node_modules
-supprimer package.lock.json
-run npm i
Après avoir mis la main sur le cas de reproduction pour cela:
Cela semble venir du cas avec les installations npm que la version définie par l'utilisateur de react
installe dans node_modules
, tandis que la version gatsby-cli
de react sera installée dans node_modules/gatsby/node_modules
.
Parce que ink
semble être installé dans node_modules
ses importations react
utiliseront des importations différentes de celles gatsby-cli
, ce qui conduit au cas:
- Vous pouvez avoir plus d'une copie de React dans la même application
Consultez https://fb.me/react-invalid-hook-call pour obtenir des conseils sur la façon de déboguer et de résoudre ce problème.
Et https://reactjs.org/warnings/invalid-hook-call-warning.html#duplicate -react explique assez bien cela, mais seule suggestion ici (utiliser yarn resolutions
ne fonctionnera pas car c'est un problème avec la façon dont npm
semble décider node_modules
structure
La seule solution (très hacky à cela) qui me vient à l'esprit en ce moment est de remplacer la résolution du module Node.js et le code en dur react
par un défini par gatsby-cli
. Cela pourrait être correct de le faire (c'est ainsi que PnP est implémenté au moins dans yarn v1)
Après quelques réflexions supplémentaires - l'autre option est d'utiliser createRequireFromPath
partir de gatsby-core-utils
(https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-core-utils/README .md # createrequirefrompath) et utilisez-le dans gatsby-cli pour charger la même version de react que ink
(c'est beaucoup moins piraté et avec moins de risques de problèmes potentiels qui proviendraient de la surcharge de la résolution du module Node.js) .
Le seul problème avec cela serait si nous utilisons des composants tiers ink
( ink-spinner
est le seul que nous utilisons actuellement) et ceux-ci seront installés dans un répertoire différent de ink
.
Nous pourrions contourner ces problèmes potentiels en vendant ink-spinner
intérieur de gatsby-cli
et en veillant à ne pas utiliser de composants tiers en tant que packages (et à les vendre tous)
---édité:
il faut faire attention ci-dessus - ink
nécessite node >= 16.8.0
donc nous devrions nous assurer de ne pas utiliser les fonctionnalités à partir de react >= 16.8.1
dans gatsby-cli
- il faut donc plus de recherche, mais c'est prometteur
Mise à jour: la route createRequireFromPath
ne fonctionnera pas, car npm
ne peut tout simplement pas résoudre "correctement" la hiérarchie node_modules
étant donné dependencies
et peerDependencies
fourni par ink
et gatsby-cli
.
Le changement "rapide" consiste à réduire les exigences de version de react
(https://github.com/gatsbyjs/gatsby/pull/21522) pour réduire le nombre de scénarios où ce problème se produira.
Mais cela ne résout pas complètement le problème. Pour cela, nous allons probablement regrouper la version react
appropriée dans gatsby-cli
pour contourner npm
incapacité de créer correctement la hiérarchie node_modules
(ou remplacer la résolution du module Node.js, mais c'est un piratage qui peut avoir des conséquences imprévues, alors j'aimerais éviter de le faire s'il y a d'autres solutions)
Une autre mise à jour - nous avons apporté quelques mises à jour à gatsby
pour limiter les projets concernés - elle a été publiée dans [email protected]
- mais elle peut toujours vous obliger à réinitialiser / supprimer package-lock.json
.
Si cela ne résout toujours pas le problème - il est probable que vous ayez react
/ react-dom
épinglé dans votre package.json
et que la version est inférieure à [email protected]
- nous n'avons pas encore de solution pour cela, mais nous l'examinons comme prochaine étape - une solution de contournement possible consiste à utiliser yarn
au lieu de npm
pour le moment (non vérifié).
Si quelqu'un est intéressé par des éléments techniques, veuillez vérifier le commentaire sur la demande de tirage initiale que j'ai essayé de faire réparer - https://github.com/gatsbyjs/gatsby/pull/21508#issuecomment -586753917 et le plan pour le moment est d'utiliser un bundler (probablement microbundle
) pour regrouper react
dans gatsby-cli
afin qu'il n'essaie pas d'utiliser react
de node_modules
et aura juste ceci inclus directement dans gatsby-cli
)
J'ai essayé beaucoup de ces commentaires, mais en tant que personne qui n'a utilisé npm
pour aucune partie du processus, j'ai pensé écrire ce qui fonctionnait spécifiquement pour moi.
Ma configuration:
Win10, Yarn installé via .msi, Gatsby via yarn global
. Utilisation de yarn
pour tous les projets Gatsby.
Problème:
Tout gatsby {command}
donnerait l'erreur StoreStateProvider
, mais npx gatsby {command}
fonctionné.
Solution:
.cache
et /node_modules
s'ils existent.react
et react-dom
sont mis à jour, "^16.13.0"
partir de cette écriture.yarn global remove gatsby gatsby-cli
pour supprimer la CLI cassée.yarn global add gatsby gatsby-cli
pour réinstaller la CLI.gatsby -v
ou un autre gatsby {command}
et cela devrait fonctionner.Production:
> gatsby -v
Gatsby CLI version: 2.9.0
Gatsby version: 2.19.23
Hiya!
Ce problème est devenu silencieux. Effrayant calme. 👻
Nous recevons beaucoup de problèmes, donc nous clôturons actuellement les problèmes après 30 jours d'inactivité. Cela fait au moins 20 jours depuis la dernière mise à jour ici.
Si nous avons manqué ce problème ou si vous souhaitez le garder ouvert, veuillez répondre ici. Vous pouvez également ajouter l'étiquette «non périmé» pour garder ce problème ouvert!
Pour rappel amical: la meilleure façon de voir ce problème, ou tout autre, résolu est d'ouvrir une Pull Request. Consultez gatsby.dev/contribute pour plus d'informations sur l'ouverture des RP, le tri des problèmes et la contribution!
Merci de faire partie de la communauté Gatsby! 💪💜
Même si cela n'a pas beaucoup d'activité, je ne pense pas que ce soit périmé
J'avais ce même problème, ce que j'ai fait était de supprimer mon json.lock et d'exécuter la commande yarn pour mettre à jour les dépendances. et tout a recommencé à fonctionner normalement.
J'ai rencontré le même problème que j'ai résolu en supprimant le dossier "node_modules" et le fichier "package-lock.json" puis la commande "npm install".
Hiya!
Ce problème est devenu silencieux. Effrayant calme. 👻
Nous recevons beaucoup de problèmes, donc nous clôturons actuellement les problèmes après 30 jours d'inactivité. Cela fait au moins 20 jours depuis la dernière mise à jour ici.
Si nous avons manqué ce problème ou si vous souhaitez le garder ouvert, veuillez répondre ici. Vous pouvez également ajouter l'étiquette «non périmé» pour garder ce problème ouvert!
Pour rappel amical: la meilleure façon de voir ce problème, ou tout autre, résolu est d'ouvrir une Pull Request. Consultez gatsby.dev/contribute pour plus d'informations sur l'ouverture des RP, le tri des problèmes et la contribution!
Merci de faire partie de la communauté Gatsby! 💪💜
Rebonjour!
Cela fait 30 jours que rien n'est arrivé à ce sujet, alors notre sympathique robot de quartier (c'est moi!) Va le fermer.
Veuillez garder à l'esprit que je ne suis qu'un robot, donc si j'ai résolu ce problème par erreur, je suis HUMAN_EMOTION_SORRY
. N'hésitez pas à rouvrir ce numéro ou à en créer un nouveau si vous avez besoin d'autre chose.
Pour rappel amical: la meilleure façon de voir ce problème, ou tout autre, résolu est d'ouvrir une Pull Request. Consultez gatsby.dev/contribute pour plus d'informations sur l'ouverture des RP, le tri des problèmes et la contribution!
Merci encore de faire partie de la communauté Gatsby! 💪💜
: légèrement_frowning_face: J'utilise toujours yurnalist
comme enregistreur par défaut. Je n'ai jamais vu ici de mise à jour indiquant que cela a été corrigé.
Aux développeurs désespérés à la recherche de problèmes qui ne devraient pas exister au départ, il suffit de:
-remove dossier node_modules
-supprimer package.lock.json
-run npm i
Cela a fonctionné pour moi ...
La désinstallation et la réinstallation de gatsby
(v 2.23.11) ont fonctionné pour moi.
utiliser l'installation de fil, cela devrait fonctionner
Donc ce que j'ai fait (après avoir tout lu jusqu'à présent), c'est que j'ai changé la version dans le fichier package.json de Gatsby 2.18.7 et j'ai exécuté npm i
Cela a fonctionné
Je rencontre toujours ce problème.
$: gatsby -v
Gatsby CLI version: 2.12.66
Gatsby version: 2.23.12
Étapes à suivre pour reproduire:
gatsby new
pour créer un nouveau projetnpm i --save node-sass gatsby-plugin-sass
gatsby develop
Résultat
$ gatsby develop
ERROR
The above error occurred in the <StoreStateProvider> component:
in StoreStateProvider
in App
React will try to recreate this component tree from scratch using the error boundary you provided, App.
ERROR
Warning: App: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.
ERROR
UNHANDLED REJECTION Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
Error: Invalid hook call. Hooks can only be called inside of the body of a fun ction component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as Reac t DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
- react.development.js:1465 resolveDispatcher
[bug]/[gatsby]/[react]/cjs/react.development.js:1465:13
- react.development.js:1496 useState
[bug]/[gatsby]/[react]/cjs/react.development.js:1496:20
- context.js:21 StoreStateProvider
[bug]/[gatsby]/[gatsby-cli]/lib/reporter/loggers/ink/context.js:21:49
- react-reconciler.development.js:6036 renderWithHooks
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:6036:18
- react-reconciler.development.js:8570 mountIndeterminateComponent
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:8570:13
- react-reconciler.development.js:9938 beginWork$1
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:9938:16
- react-reconciler.development.js:11563 Object.invokeGuardedCallbackImpl
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:11563:10
- react-reconciler.development.js:11740 invokeGuardedCallback
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:11740:31
- react-reconciler.development.js:15778 beginWork$$1
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:15778:7
- react-reconciler.development.js:14696 performUnitOfWork
[bug]/[ink]/[react-reconciler]/cjs/react-reconciler.development.js:14696:12
Cela a été résolu en implémentant les instructions en procédant comme suit, comme décrit ci-dessus ☝️
Donc ce que j'ai fait (après avoir tout lu jusqu'à présent), c'est que j'ai changé la version dans le fichier package.json de Gatsby 2.18.7 et j'ai exécuté
npm i
Cela a fonctionné
La suppression des dossiers .cache et node_modules, et package-lock.json, puis la réinstallation ont fonctionné pour moi.
J'ai donné une mise à niveau de fil et cela a fonctionné pour moi.
La suppression de node_modules
, du cache npm et des fichiers package-lock.json
est une solution peu pratique pour ce qui serait un changement radical chaque fois qu'un plugin ou une dépendance est ajoutée.
Le problème sous-jacent dans mon cas était qu'un nouveau projet provisionné à l'aide de gatsby new [path] [starter]
utilise implicitement yarn
pour amorcer les dépendances si yarn
est installé et disponible ( which yarn
renvoie une chaîne non vide). Les tentatives ultérieures d'installation de plugins / dépendances à l'aide de npm
échoueront avec des erreurs cryptiques comme indiqué ci-dessus car npm
et yarn
sont des solutions de gestion de paquets mutuellement exclusives.
Il serait préférable pour le cli gatsby de ne pas utiliser par défaut un yarn
sans qu'une option de ligne de commande ne le demande. La résolution pour moi était de désinstaller yarn et de réinitialiser le projet afin que npm
puisse être utilisé exclusivement.
https://github.com/gatsbyjs/gatsby/pull/26887 (fusionné hier et publié aujourd'hui) qui supprime react
des dépendances de gatsby-cli
et le regroupe lorsque nous publions des packages - qu'est-ce que c'est signifie que cela ne devrait pas donner lieu à des copies multiples étranges de react
dans node_modules
qui causent toutes sortes de problèmes.
@ duchess-toffee Vous pourriez trouver https://github.com/gatsbyjs/gatsby/pull/26856 intéressant (pas encore fusionné / publié) - alors qu'il ne reviendra pas automatiquement de yarn
à npm
comme gestionnaire de paquets par défaut - vous pourrez exécuter gatsby options set pm npm
J'ai eu un problème apparemment lié à ce problème # 26998
Résolu à l'aide d'une configuration Webpack personnalisée pour résoudre react
:
`` `` js
// fichier: gatsby-node.js
const path = require ('chemin')
module.exports = {
onCreateWebpackConfig: ({actions}) => {
actions.setWebpackConfig ({
résoudre: {
alias: {
'react': path.resolve (path.join (__ dirname, 'node_modules', 'react'))
}
}
})
}
}
`` ``
json
// file: package.json
{
"dependencies": {
"@mdx-js/mdx": "^1.6.18",
"@mdx-js/react": "^1.6.18",
"gatsby": "^2.24.64",
"gatsby-plugin-layout": "^1.3.11",
"gatsby-plugin-mdx": "^1.2.40",
"gatsby-plugin-sass": "^2.3.12",
"gatsby-source-filesystem": "^2.3.30",
"gatsby-telemetry": "^1.3.35",
"node-sass": "^4.14.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-ionicons-v5": "^1.2.0",
"three": "^0.120.1"
}
}
Tout se passe bien maintenant.
Commentaire le plus utile
J'ai résolu le problème! J'ai utilisé npm pour désinstaller, puis (ré) installer
react
,react-dom
etgatsby
. Je l'ai fait dans cet ordre exact (je ne pense pas que la commande importerait, mais pour info au cas où elle le ferait).npm ls react
affiche deux versions, mais elles sont identiques et marquées comme "dédoublées":