Desarrollar una aplicación de Next.js es solo la fase inicial; el siguiente paso crucial es la implementación. Este proceso implica poner tu aplicación a disposición de los usuarios en Internet. Una estrategia de implementación eficaz es vital para garantizar el rendimiento, la escalabilidad y la confiabilidad de tu aplicación. En esta guía, te explicaremos los pasos para implementar correctamente tu app de Next.js.
Next.js es un framework de React que se basa en React y agrega funciones que facilitan la creación y optimización automática de sitios web listos para producción.
En pocas palabras, Next.js es un framework que te ayuda a crear apps modernas con React. Tiene compatibilidad con servidores, imágenes y componentes optimizados que permiten obtener resultados rápidos y, al mismo tiempo, mantener una transferencia de archivos pequeña.
Ambos pueden parecerse y ejecutar JavaScript, pero existen grandes diferencias en lo que hacen y cuáles son sus funciones.
Función | React (predeterminado) | Next.js |
Optimización para SEO | Puede ser desafiante | Optimizado para SEO |
Rendimiento de carga inicial | Más lenta | Más rápida |
Recuperación de datos | Requiere implementación manual | Integrado en getServerSideProps y getStaticProps |
Enrutamiento | Usa una biblioteca de enrutamiento (por ejemplo, React Router). | Enrutamiento basado en el sistema de archivos |
Complejidad | Más simple | Más configurado de fábrica |
React (predeterminado)
Next.js
Optimización para SEO
Puede ser desafiante
Optimizado para SEO
Rendimiento de carga inicial
Más lenta
Más rápida
Recuperación de datos
Requiere implementación manual
Integrado en getServerSideProps y getStaticProps
Enrutamiento
Usa una biblioteca de enrutamiento (por ejemplo, React Router).
Enrutamiento basado en el sistema de archivos
Complejidad
Más simple
Más configurado de fábrica
Para muchas apps de React, los pasos suelen ser los mismos, pero recomendamos usar el framework Next.js. Para requisitos de alto rendimiento y nivel avanzado, este framework administrará muchos componentes que ayudan a escalar tu app de manera más eficiente y optimizar la SEO de tu sitio de React.
Deberás generar la plantilla con la terminal para que estén todos los detalles y requisitos de código.
Usa la terminal:
npx create-next-app@latest
Para seguir, también necesitarás algunas configuraciones.
Necesitarás las instrucciones sobre lo que es necesario, lo que necesitas (información del servidor o del cliente) y dónde se encuentra. Esto es lo que puedes esperar en la compilación que se realizará.
“Esto es para el rendimiento y la velocidad”.
Una vez más, eso puede ayudarte a asegurarte de que tienes tus partes listas que te hacen querer componentes con lados de servidor y/o cliente.
Ahora actualiza el código y haz que el diseño sea agradable.
Es posible que necesites información sobre este tema, así que considera esta documentación.
Ahora que realizaste estos cambios, la configuración está completa. Permite que se renderice.
Para una optimización de motores de búsqueda óptima, la velocidad de tu sitio web es crucial. JavaScript, por sí solo, puede ralentizar la renderización y afectar negativamente el rendimiento de la búsqueda. Sin embargo, usar Next.js puede mitigar este problema. Por lo tanto, prioriza una experiencia de carga rápida y una administración de datos eficiente en tu sitio. La seguridad sólida y los productos de alta calidad requieren un uso cuidadoso de los datos de prueba, respetando la privacidad y el acceso.
Enrutamiento del cliente
La mayoría de las apps de React usan una biblioteca como react-router-dom para controlar la navegación. Como esto sucede en el navegador, tu servidor de hosting debe estar configurado para admitirlo. Esto suele significar dirigir todas las solicitudes de página a tu archivo index.html raíz, lo que permite que React Router tome el control y muestre el componente correcto.
Variables de entorno
Es probable que tu aplicación necesite diferentes configuraciones para el desarrollo y la producción, como claves de API o endpoints de bases de datos. Es fundamental administrar estos elementos con variables de entorno (por ejemplo, a través de archivos .env) para no exponer información sensible en tu código fuente.
Comunicación de la API de backend
Un frontend de React es responsable de la IU, pero suele obtener sus datos dinámicos de una API de backend. Cuando realices la implementación, debes asegurarte de que tu aplicación de React conozca la URL correcta de tu API de producción y esté configurada para manejar el uso compartido de recursos entre dominios (CORS) si la API está alojada en un dominio diferente.
Cloud Run puede ser una buena opción para implementar una app de React cuando quieres usar un flujo de trabajo basado en contenedores, lo que proporciona la máxima coherencia y portabilidad. Comienza con la guía de inicio rápido para crear e implementar apps de React de Next.js en Cloud Run.
Para transferir correctamente, asegúrate de haber implementado todos los detalles relevantes para la configuración de datos y transferencia.
Con estos pasos, asegúrate de que cada etapa tenga todos los detalles necesarios para el proyecto.
# Instala dependencias solo cuando sea necesario FROM node:16-alpine AS deps # Revisa https://github.com/nodejs/docker-node/tree/b4117f933ba60658f2812f36b8 117330a1dc25ab#alpine RUN apk add --no-cache libc6-compat WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci # Si usas turbo, quita el comentario de esta sección también: # COPY turbo.json ./ # COPY .gitignore ./ # Add env variable ENV NEXT_TELEMETRY_DISABLED 1 # El hook de recompilación te permite verificar qué se incluye y qué no RUN npm run build ############### #### Etapa 2: Imagen de producción ### ############### FROM node:16-alpine AS runner WORKDIR /app # NEXT_PUBLIC_... variables env durante la compilación. ENV NODE_ENV production # solo necesitas copiar next.config.js si usas un archivo de configuración personalizado COPY --from=builder /app/next.config.js ./ COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json # Consulta los detalles en https://cloud.google.com/run/docs /configuring/traffic ENV PORT 8080 EXPOSE 8080 CMD ["npm", "start"] |
# Instala dependencias solo cuando sea necesario
FROM node:16-alpine AS deps
# Revisa https://github.com/nodejs/docker-node/tree/b4117f933ba60658f2812f36b8
117330a1dc25ab#alpine
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# Si usas turbo, quita el comentario de esta sección también:
# COPY turbo.json ./
# COPY .gitignore ./
# Add env variable
ENV NEXT_TELEMETRY_DISABLED 1
# El hook de recompilación te permite verificar qué se incluye y qué no
RUN npm run build
###############
#### Etapa 2: Imagen de producción ###
###############
FROM node:16-alpine AS runner
WORKDIR /app
# NEXT_PUBLIC_... variables env durante la compilación.
ENV NODE_ENV production
# solo necesitas copiar next.config.js si usas un archivo de configuración personalizado
COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./package.json
# Consulta los detalles en https://cloud.google.com/run/docs
/configuring/traffic
ENV PORT 8080
EXPOSE 8080
CMD ["npm", "start"]
Ahora debes realizar la implementación. Usa una plataforma como Cloud Build y conecta los archivos de configuración.
Ahora, Cloud Run será el método final para manejarlo, teniendo en cuenta si ayuda y es correcto. Asegúrate de consultar las herramientas y el código principales, y de que se ejecuten sin problemas.
Firebase también puede ser un excelente lugar para implementar, así que recuerda estos sencillos pasos. ¿Todo listo para integrar Next.js en Firebase? Sigue la documentación completa.
Sigue las configuraciones de lo que requiere esta imagen o documento (se requiere SSL) para que todo funcione de forma segura.
Haz un seguimiento de cómo se instala y funciona la CLI de Firebase.
npm install -g firebase-tools
Sigue “Firebase Init - Hosting”.
Asegúrate de que la URL se reescriba y sea precisa en la línea de comandos.
Usa "no"; esto garantizará que, cuando se implemente todo, no haya problemas.
Querrás realizar pruebas locales, lo que requiere código de host local.
Después de autenticar la CLI, envíala a este repositorio:
Ahora subes lo siguiente:
Para obtener la lista completa de sugerencias generales de desarrollo en Cloud Run, lee esta documentación.
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.