Guía para crear e implementar una app de Next.js

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.

Ejecuta tu app de Next.js en Cloud Run

¿Qué es el framework 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.

Diferencias entre React (predeterminado) y Next.js

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

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

Cómo crear una app de Next.js

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.

Consideraciones clave a la hora de crear una app de Next.js

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.


Cómo implementar una app de Next.js en Cloud Run

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.

Paso 1: Asegúrate de la aplicación

Para transferir correctamente, asegúrate de haber implementado todos los detalles relevantes para la configuración de datos y transferencia.

Paso 2: Próxima compilación; creación de Docker

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.

Paso 3: Obtén la nube de tu lado; úsala para liberarlo finalmente

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.

Cómo implementar una app de Next.js en Firebase

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.

Paso 1: Tenlo listo para la configuración del servidor público

Sigue las configuraciones de lo que requiere esta imagen o documento (se requiere SSL) para que todo funcione de forma segura.

Paso 2: Configura y realiza la instalación (CMD)

Haz un seguimiento de cómo se instala y funciona la CLI de Firebase.

npm install -g firebase-tools

Paso 3: Conecta y configura el proyecto

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.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.

Prácticas recomendadas para tus pruebas

Querrás realizar pruebas locales, lo que requiere código de host local.

Después de autenticar la CLI, envíala a este repositorio:

  • gcloud auth configure-docker

Ahora subes lo siguiente:

  • docker tag [IMAGE_NAME] gcr.io/[PROJECT-ID]/[IMAGE_NAME]
  • Imágenes de contenedor de gcloud y envíala

Para obtener la lista completa de sugerencias generales de desarrollo en Cloud Run, lee esta documentación.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud