Dépannage
Les problèmes que vous pouvez rencontrer en lançant le site, leur cause et comment les résoudre.
Un port est déjà utilisé
ports are not available: exposing port TCP 0.0.0.0:3030 … bind: address already in use
Error: listen EADDRINUSE: address already in use :::3030La première ligne vient de Docker, la seconde de yarn dev ou yarn start. Un autre programme écoute déjà sur 3030 : souvent un lancement précédent du site, ou le serveur de développement d'un autre projet.
Trouvez ce qui occupe le port
Sous macOS ou Linux :
Terminallsof -i :3030Sous Windows, dans PowerShell :
Terminalnetstat -ano | findstr :3030Arrêtez-le
Fermez ce programme, ou arrêtez le lancement précédent : Ctrl+C dans son terminal, ou
docker stopavec le nom ou l'identifiant du conteneur (docker psles liste). Puis relancez le site.Ou lancez le site sur un autre port
Avec Docker, changez seulement le nombre à gauche de
-p; celui de droite est le port à l'intérieur du conteneur et reste3030:Terminaldansjuicydocker run -p 3041:3030 juicySans Docker :
Terminaldansjuicyyarn dev -p 3041Pour le build de production,
yarn start -p 3041.Résultat attendu: Le site répond sur localhost:3041Local.
Docker n'est pas lancé
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is runningLes anciennes versions de Docker affichent plutôt « Cannot connect to the Docker daemon ». Dans les deux cas, le moteur Docker n'est pas démarré.
Ouvrez Docker Desktop
Lancez Docker Desktop et attendez qu'il indique que le moteur est en marche. Sous Linux, démarrez le service :
sudo systemctl start docker.Vérifiez que Docker répond
Terminaldocker infoRésultat attendu: Une section Server s'affiche au lieu d'une erreur.
Relancez votre commande
docker build -t juicy ., puisdocker run -p 3030:3030 juicy.
Le build Docker échoue
Le premier build télécharge l'image Node.js et toutes les dépendances, puis construit le site. Il s'arrête avec "failed to solve" et l'étape qui a échoué quand quelque chose bloque.
- Pas de connexion ou délai dépassé : le build a besoin d'un accès à internet. Relancez la commande une fois en ligne ; les étapes terminées sont en cache.
- No space left on device : libérez de l'espace dans Docker Desktop, ou vérifiez ce que Docker occupe avec
docker system df. - Il échoue à `yarn build` après une modification du code : l'erreur au-dessus de cette ligne nomme le fichier. Lancez
yarn typechecksans Docker pour voir toutes les erreurs de type d'un coup. - Il échoue toujours à la même étape : relancez le build sans le cache.
juicydocker build --no-cache -t juicy .Yarn indique la version 1.22
This project's package.json defines "packageManager": "yarn@4…". However the current global version of Yarn is 1.22…Le template fige Yarn 4 via Corepack. Ce message signifie que Corepack n'est pas encore activé, c'est donc l'ancien Yarn global qui a répondu.
corepack enablePuis relancez yarn install. Si votre Node.js n'a pas Corepack, installez-le d'abord avec npm install -g corepack.
Les canettes n'apparaissent pas
Loading models...La page reste sur son indicateur de chargement, ou affiche le fond et le texte sans canettes. La roue n'apparaît qu'une fois la première canette et la carte d'éclairage chargées toutes les deux, donc un seul fichier en échec la garde cachée.
- Le chemin d'un modèle est faux. Le fichier
.glbde chaque canette est listé danssrc/features/carousel/constants/juiceCans.tset servi depuispublic/. Un fichier renommé ou déplacé répond 404. - La carte d'éclairage manque. Il s'agit de
public/assets/hdri/forest_slope_1k.hdr, nommé danssrc/features/carousel/constants/environment.ts. Gardez le fichier, ou modifiez les deux ensemble. - WebGL est désactivé. Activez l'accélération matérielle dans les paramètres du navigateur, ou essayez un autre navigateur.
Ouvrez les outils de développement du navigateur, onglet Network, et rechargez : la requête en échec indique le fichier manquant. Tout ce que charge la page est fourni dans le dossier : aucun service extérieur n'est nécessaire.
Une modification ne s'affiche pas
- Avec Docker : l'image contient une copie du site du moment où vous l'avez construite. Relancez
docker build -t juicy ., puis démarrez un nouveau conteneur. - Avec `yarn start` : relancez d'abord
yarn build. Seulyarn devprend en compte les modifications de lui-même. - Un nouveau modèle 3D ou une nouvelle image a l'air ancien : le navigateur garde les fichiers de
public/. Rechargez sans le cache (Ctrl+Shift+R, ou Cmd+Shift+R sur Mac), ou donnez un nouveau nom au nouveau fichier.
Le site ne lit aucune variable d'environnement. Si vous en ajoutez une dont le nom commence par NEXT_PUBLIC_, Next.js écrit sa valeur dans la page au moment du build, donc une nouvelle valeur demande aussi un nouveau build.
Un texte s'affiche sous forme de clé
juices.lemonGinger.nameLa page affiche le nom d'un texte au lieu du texte, et la console du navigateur journalise MISSING_MESSAGE. La clé manque dans l'un des fichiers de messages, souvent après qu'une saveur a reçu un nouvel identifiant. Ajoutez-la à la fois dans messages/en.json et messages/ar.json, avec le même chemin dans chacun.
Le site ne répond pas sur un service d'hébergement
yarn start écoute toujours sur le port 3030 : le script le fixe avec -p 3030, qui l'emporte sur une variable PORT. Un hébergeur qui donne à l'application son propre port dans PORT n'y trouve alors rien. Indiquez à l'hébergeur que l'application écoute sur 3030, ou utilisez ceci comme commande de démarrage :
yarn next start -p $PORT