Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

2.6K
Views
Las variables de entorno next.js no están definidas (Next.js 10.0.5)

Estoy codificando un sitio web con Next.js e intenté agregar Google Tag Manager.
Seguí el tutorial en el ejemplo de Next.js Github pero por alguna razón no puedo acceder a mis variables de entorno.
Dice que mi variable no está definida.
Creé un archivo .env.local en la carpeta de mi proyecto (al mismo nivel que los componentes, node_modules, páginas, etc.)
En este archivo, creé una variable como esta (propósito de prueba):

 NEXT_PUBLIC_DB_HOST=localhost

Y en mi página de índice probé este código:

 console.log("test ", process.env.NEXT_PUBLIC_DB_HOST);

Pero en mi consola obtengo una "prueba indefinida".
Traté de poner mi variable en un archivo .env en su lugar, sin éxito.
Que estoy haciendo mal ?

over 4 years ago · Santiago Trujillo
7 answers
Answer question

0

Reiniciar el servidor funcionó para mí.

  1. Editar y guardar .env.local
  2. Detenga el servidor y reinícielo, npm run dev
  3. Debería obtener una salida en la siguiente línea como esta:
 > klout@0.1.0 dev > next dev Loaded env from [path]/.env.local
over 4 years ago · Santiago Trujillo Report

0

Este entorno solo funciona en el lado del servidor. Para acceder a este envs en el lado del cliente, debe declarar en next.config.js

De esta manera:

 module.exports = { reactStrictMode: true, env: { BASE_URL: process.env.BASE_URL, } }
over 4 years ago · Santiago Trujillo Report

0

Después de pasar innumerables horas en esto, descubrí que hay un pequeño párrafo tanto en la documentación anterior como posterior a nextjs 9.4:

  • (Pre-9.4) https://nextjs.org/docs/api-reference/next.config.js/environment-variables (igual que esta respuesta )

    Next.js reemplazará process.env.customKey con 'my-value' en el momento de la compilación .

  • (^9.4) https://nextjs.org/docs/basic-features/environment-variables

    Para mantener seguros los secretos exclusivos del servidor, Next.js reemplaza process.env.* con los valores correctos en el momento de la compilación .

Las palabras clave son TIEMPO DE CONSTRUCCIÓN . Esto significa que debe haber configurado estas variables al ejecutar la next build y no (solo) al next start para que esté disponible para que el lado del cliente acceda a estas variables.

over 4 years ago · Santiago Trujillo Report

0

  1. Cree .env (todos los entornos) , .env.development (entorno de desarrollo) y .env.production (entorno de producción).

  2. Agregue el prefijo NEXT_PUBLIC a todas sus variables de entorno.

NEXT_PUBLIC_API_URL=http://localhost:3000/

  1. Usar con el prefijo process.env

proceso.env.NEXT_PUBLIC_API_URL

  1. Detenga el servidor y reinícielo:

npm ejecutar dev

  1. Espero que funcione. Esta solución para la última versión de nextJs (más de 9)
over 4 years ago · Santiago Trujillo Report

0

Para aquellos que usan NextJS +9 y buscan variables de entorno en el navegador, deben usar el prefijo NEXT_PUBLIC_ . Ejemplo:

 NEXT_PUBLIC_ANALYTICS_ID=123456789

Consulte la documentación como referencia .

over 4 years ago · Santiago Trujillo Report

0

Este es mi archivo next.config.js.

 /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, env: { BASE_URL: process.env.NEXT_PUBLIC_SITE_URL, }, }; module.exports = nextConfig;

Reinicie el servidor y funcionó bien. usando Nextjs 12.1.0 con mecanografiado

over 4 years ago · Santiago Trujillo Report

0

En mi caso, estoy pegando REACT_APP_API_URL en lugar de NEXT_PUBLIC_API_URL.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!