Solución de problemas
Los problemas que puedes encontrar al ejecutar el sitio, qué causa cada uno y cómo solucionarlo.
Un puerto ya está en uso
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 primera línea viene de Docker, la segunda de yarn dev o yarn start. Otro programa ya escucha en 3030: a menudo una ejecución anterior del sitio o el servidor de desarrollo de otro proyecto.
Averigua qué ocupa el puerto
En macOS o Linux:
Terminallsof -i :3030En Windows, en PowerShell:
Terminalnetstat -ano | findstr :3030Detenlo
Cierra ese programa o detén la ejecución anterior: Ctrl+C en su terminal, o
docker stopcon el nombre o el id del contenedor (docker pslos lista). Luego vuelve a iniciar el sitio.O ejecuta el sitio en otro puerto
Con Docker, cambia solo el número a la izquierda de
-p; el de la derecha es el puerto dentro del contenedor y sigue siendo3030:Terminalenjuicydocker run -p 3041:3030 juicySin Docker:
Terminalenjuicyyarn dev -p 3041Para la versión de producción,
yarn start -p 3041.Resultado esperado: El sitio responde en localhost:3041Local.
Docker no se está ejecutando
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is runningLas versiones antiguas de Docker muestran "Cannot connect to the Docker daemon" en su lugar. En ambos casos, el motor de Docker no está iniciado.
Abre Docker Desktop
Inicia Docker Desktop y espera a que indique que el motor está en ejecución. En Linux, inicia el servicio:
sudo systemctl start docker.Comprueba que Docker responde
Terminaldocker infoResultado esperado: Muestra una sección Server en lugar de un error.
Ejecuta tu comando de nuevo
docker build -t juicy ., y luegodocker run -p 3030:3030 juicy.
La construcción de Docker falla
La primera construcción descarga la imagen de Node.js y todas las dependencias, y luego construye el sitio. Se detiene con "failed to solve" y el paso que falló cuando algo se interpone.
- Sin conexión o tiempo de espera agotado: la construcción necesita acceso a internet. Vuelve a ejecutar el comando cuando tengas conexión; los pasos terminados quedan en caché.
- No space left on device: libera espacio en Docker Desktop o revisa cuánto usa Docker con
docker system df. - Falla en `yarn build` después de cambiar el código: el error encima de esa línea indica el archivo. Ejecuta
yarn typechecksin Docker para ver todos los errores de tipos a la vez. - Falla siempre en el mismo paso: construye de nuevo sin la caché.
juicydocker build --no-cache -t juicy .Yarn dice que su versión es 1.22
This project's package.json defines "packageManager": "yarn@4…". However the current global version of Yarn is 1.22…La plantilla fija Yarn 4 a través de Corepack. Este mensaje significa que Corepack aún no está activado, así que respondió el antiguo Yarn global.
corepack enableDespués vuelve a ejecutar yarn install. Si tu Node.js no trae Corepack, instálalo antes con npm install -g corepack.
Las latas no aparecen
Loading models...La página se queda en su indicador de carga, o muestra el fondo y el texto sin latas. La rueda aparece solo cuando la primera lata y el mapa de iluminación se han cargado, así que un solo archivo que falla la mantiene oculta.
- La ruta de un modelo es incorrecta. El archivo
.glbde cada lata aparece ensrc/features/carousel/constants/juiceCans.tsy se sirve desdepublic/. Un archivo renombrado o movido responde 404. - Falta el mapa de iluminación. Es
public/assets/hdri/forest_slope_1k.hdr, nombrado ensrc/features/carousel/constants/environment.ts. Conserva el archivo, o cambia los dos a la vez. - WebGL está desactivado. Activa la aceleración por hardware en los ajustes del navegador o prueba otro navegador.
Abre las herramientas de desarrollo del navegador, pestaña Network, y recarga: la petición que falla indica el archivo que falta. Todo lo que carga la página viene en la carpeta, así que no necesita ningún servicio externo.
Un cambio no se ve
- Con Docker: la imagen guarda una copia del sitio del momento en que la construiste. Ejecuta de nuevo
docker build -t juicy .y luego inicia un contenedor nuevo. - Con `yarn start`: ejecuta primero
yarn buildde nuevo. Soloyarn devrecoge los cambios por sí mismo. - Un modelo 3D o una imagen nuevos se ven como los antiguos: el navegador guarda los archivos de
public/. Recarga sin la caché (Ctrl+Shift+R, o Cmd+Shift+R en un Mac), o dale un nombre nuevo al archivo nuevo.
El sitio no lee variables de entorno. Si añades una cuyo nombre empieza por NEXT_PUBLIC_, Next.js escribe su valor en la página al construir, así que un valor nuevo también necesita una construcción nueva.
Un texto aparece como su clave
juices.lemonGinger.nameLa página muestra el nombre de un texto en lugar del texto, y la consola del navegador registra MISSING_MESSAGE. Falta la clave en uno de los archivos de mensajes, a menudo después de que un sabor recibiera un id nuevo. Añádela tanto en messages/en.json como en messages/ar.json, con la misma ruta en cada uno.
El sitio no responde en un servicio de hosting
yarn start siempre escucha en el puerto 3030: el script lo fija con -p 3030, que tiene prioridad sobre una variable PORT. Un host que le da a la app su propio puerto en PORT no encuentra nada allí. Indica al host que la app escucha en 3030, o usa esto como su comando de inicio:
yarn next start -p $PORT