[RUBY] 767 JSON :: ParserError se produit et le serveur local ne peut pas être démarré.

767 JSON :: ParserError se produit et le serveur local ne peut pas être démarré.

Lors de la saisie de la commande rails s sur le terminal, Le journal des erreurs suivant s'est produit pendant le processus de démarrage du serveur et le démarrage du serveur local a échoué.

#Les lignes au-dessus de la 10e ligne sont omises
	10: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each'
	 9: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:61:in `block in run_initializers'
	 8: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:32:in `run'
	 7: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:32:in `instance_exec'
	 6: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/webpacker-4.3.0/lib/webpacker/railtie.rb:84:in `block in <class:Engine>'
	 5: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/webpacker-4.3.0/lib/webpacker.rb:35:in `bootstrap'
	 4: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/webpacker-4.3.0/lib/webpacker/commands.rb:25:in `bootstrap'
	 3: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/webpacker-4.3.0/lib/webpacker/manifest.rb:18:in `refresh'
	 2: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/webpacker-4.3.0/lib/webpacker/manifest.rb:84:in `load'
	 1: from /Users/ito/.rbenv/versions/2.6.5/lib/ruby/2.6.0/json/common.rb:156:in `parse'
/Users/ito/.rbenv/versions/2.6.5/lib/ruby/2.6.0/json/common.rb:156:in `parse': 767: unexpected token at '' (JSON::ParserError)

Quand je lis le contenu de l'erreur pour le moment, parse': 767: unexpected token at '' (JSON::ParserError) Faites attention à l'affichage de. Qu'est-ce que c'est que ça? Je pense que je vais continuer à chercher une solution.

Ce qui a été étudié et hypothèse

Pour le moment, j'ai recherché JSON :: ParserError, mais je n'ai trouvé aucune information à ce sujet. Pendant ce temps, les informations sur le site suivant sont devenues un rayon de lumière.

Blog du mode développeur: les rails 6 perdent 4 heures précieuses dans l'après-midi

... je tombe ici. Quand je l'ai suivi, il y avait un fichier appelé manifest.json sous public / packs, qui était vide. J'ai dû aller faire ce fichier quand il est resté bloqué. J'ai forcé une réinitialisation là-bas, donc il est resté vide, et il semble que j'ai eu un JSON-ParseError. J'ai supprimé ce fichier et cela a fonctionné. C'était bien.

Hmmm, en bref, ** le fichier pour ruby lui-même est corrompu ** et ... Rétrospectivement, je me suis souvenu ** d'avoir tué le serveur avec Control + C lors du traitement du serveur local **. Similaire au symptôme ci-dessus, j'ai émis l'hypothèse que ** manifest.rb pourrait être corrompu **, J'ai essayé de sauvegarder manifest.rb dans un autre répertoire (comme le bureau) afin qu'il ne soit pas lu.

Par conséquent

Sur la base de l'hypothèse et du contenu étudié, enregistrez manifest.rb dans un autre répertoire (bureau) et exécutez à nouveau rails s. Ensuite, le résultat suivant a été renvoyé.

Terminal


/Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.8/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:
in `require': cannot load such file -- 
/Users/ito/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/webpacker-4.3.0/lib/webpacker/manifest.rb (LoadError)

... Eh bien, je pensais que ce serait comme ça, mais j'ai été choqué de courir à nouveau dans l'obscurité. Il semble que cela n'ait pas été résolu sans le chargement de manifest.rb. ~~ Il ne semble pas être généré automatiquement en premier lieu ~~

Je n'ai pas trouvé de solution valable même si je cherchais plus sur le net, donc J'ai décidé de poser une question au mentor de TECK CAMP. Il est impossible de résoudre vous-même l'erreur survenue dans la zone sombre inconnue.

Mais non ...!

C'était un bug dont la solution était inconnue du mentor. Je suis désolé d'avoir fait diverses choses, mais le fonctionnement de mon Mac Book est devenu trop lourd, alors j'ai fait une pause ici. C'est déjà Yannarune.

Et la solution

Retour sur le contenu du blog du mode développeur: rails 6 gaspillant 4 heures précieuses dans l'après-midi Vue.

・ ・ ・ ** Il existe un fichier appelé manifest.json ** sous public / packs ...

** Hmm? ** Si vous regardez attentivement, vous n'avez pas dit que vous devriez supprimer manifest.rb!

Vérifiez ensuite le répertoire immédiatement. Il y a un manifest.rb vide ...! Supprimez manifest.rb pendant wkwk. En conséquence, le serveur local a été réactivé avec succès. Toutes nos félicitations

La cause était ** le manifest.json ** dans le répertoire public / packs de l'application Rails sur laquelle je travaillais. Je me demande pourquoi je l'oublie car il a été écrit dans le blog de référence. Le fichier Ruby n'a pas été corrompu.

J'étais terrifié par ma confiance en moi, et cela a résolu le 767 JSON :: ParserError. J'ai perdu 3 heures ... je n'utilise plus Control + C à la légère ...

Recommended Posts

767 JSON :: ParserError se produit et le serveur local ne peut pas être démarré.
Le serveur Rails ne peut pas être démarré dans Cloud9
Comment résoudre le problème selon lequel la notification ne peut pas être demandée sur iOS14
Résolvez le problème que SwiftPM ne peut pas traverser le proxy et ajouter des packages au projet
[Android] Solution lorsque l'appareil photo ne peut pas être démarré sur Android 9
JSON en Java et Jackson Partie 1 Renvoyer JSON à partir du serveur
Évitez le problème que la session ne peut pas être obtenue lorsque Canary est libéré lors de la mise à niveau de Rails 4.2.x vers 5.0.x
Lorsque tomcat est démarré dans eclipse, "ClassNotFoundException" s'affiche et ne peut pas être démarré.
Une histoire qui résout le problème que REMOTE_ADDR ne peut pas être acquis dans un cluster construit avec Docker Swarm + Traefik (1.7).
Comment effacer l'identifiant de processus (PID) qui ne peut pas être effacé! (Gestion de l'inopérabilité avec Vim et Vi)
Pg_resetwal peut être utilisé pour démarrer le conteneur Docker PostgreSQL lorsque WAL est cassé et ne peut pas être démarré.