Me gustaría obtener acceso a una variable .env usando Vue JS.

En mi archivo .env he agregado el prefijo 'MIX_' a la var.

MIX_VAR=key

Y luego, en el componente vue, tengo en created ():

console.log(process.env.MIX_VAR);

Sigo recibiendo indefinida como resultado.

Intenté borrar la caché de configuración, pero sigo teniendo el mismo problema. ¿Algunas ideas?

6
Adnan 13 sep. 2018 a las 17:29

3 respuestas

La mejor respuesta

Debe construir su JS para que las variables env sean reemplazadas. Puede hacer esto con npm o yarn

https://laravel.com/docs/5.7/mix#running-mix

11
Darryl E. Clarke 13 sep. 2018 a las 14:59

Extraído de los documentos oficiales @ https://laravel.com/docs/5.6/mix#environment -variables


Variables de entorno

Puede inyectar variables de entorno en Mix prefijando una clave en su archivo .env con MIX_:

MIX_SENTRY_DSN_PUBLIC=http://example.com

Después de que la variable se haya definido en su archivo .env, puede acceder a través del objeto process.env. Si el valor cambia mientras ejecuta una tarea de observación, deberá reiniciar la tarea:

process.env.MIX_SENTRY_DSN_PUBLIC

Lo más importante que debe recordar es que debe usar Laravel Mix para que esto funcione. Mix es lo que está inyectando la variable de entorno.

6
Giovanni S 13 sep. 2018 a las 15:02

en ventanas:

Eso funcionó para mí sin ningún requerimiento en webpack.mix

... solo agregue una nueva variable en el archivo env con este prefijo: MIX_

MIX_API_URL=http://laravel:8000

Pero necesita reiniciar php artisan serve y también reiniciar npm run watch ...

  let api_url = process.env.MIX_API_URL;
  console.log("my env variable:");
  console.log(api_url);

en Linux o Docker:

No puedo usarlo

3
saber tabatabaee yazdi 17 may. 2020 a las 11:37