Как получить тип ENV Laravel + VueJS + Homestead

Я разрабатываю приложение, используя Laravel + VueJS + Homestead, и, как всем известно, в Laravel 5.2 у нас есть файл env, в котором мы можем устанавливать переменные env... Я хотел бы сделать что-то подобное, но таким образом, чтобы я мог получить к нему доступ из моего джаваскрипт код!

Я читал о proccess.NODE_ENV, но я не знаю, правильно ли я понял, но похоже, что работает только при запуске npm, нет? Поскольку я запускаю свое приложение через усадьбу, я действительно не знаю, как это сделать!

Заранее спасибо!


person Gustavo Bissolli    schedule 25.04.2016    source источник
comment
Если вы используете Webpack/Browserify, вы можете сделать что-то вроде var config = require('./path/to/config.json'). stackoverflow .com/questions/5869216/   -  person ceejayoz    schedule 25.04.2016
comment
Привет @ceejayoz ... Мой главный вопрос в том, как установить, с какой средой я работаю! Прямо сейчас мой proccess.NODE_ENV возвращает неопределенное значение, и я могу понять, как заставить его возвращать правильное значение! То, что я делаю, похоже на предложенное ниже... но я не знаю, как заставить NODE_ENV вернуть правильное значение!   -  person Gustavo Bissolli    schedule 25.04.2016


Ответы (2)


Вы можете сбросить переменную среды APP_ENV на страницу, на которой размещен ваш JavaScript, а затем получить к ней доступ или передать ее Vue.

<script type="text/javascript">
    var env = "{{ env }}";
</script>

а затем в вашем контроллере...

$env = getenv("APP_ENV");

даст вам значение APP_ENV

person megubyte    schedule 25.04.2016
comment
Я не уверен, что это безопасно, чувак! В моем .env мы обычно храним переменные безопасности как ключи шифрования и тому подобное! Было бы лучше работать с моими envjs без привязки к моему Laravel .env! - person Gustavo Bissolli; 25.04.2016
comment
getenv("APP_ENV") будет буквально выводить только значение "APP_ENV" в файле .env - это будет "production", "staging", "development" и т. д. - person megubyte; 25.04.2016
comment
Ух ты!! Это должно сработать! Я не понял, чувак, извини!! Я собираюсь попробовать это!! Большое спасибо! - person Gustavo Bissolli; 25.04.2016

У меня есть файл config.js, в котором я храню переменные конфигурации, например:

const IS_LOCAL = process.env.NODE_ENV !== 'production'

const API_BASE_URL = IS_LOCAL
    ? 'http://api.domain.dev/v1'
    : 'http://api.domain.com/v1'

const LOGIN_URL = "auth/login"
const LOGOUT_URL = "auth/logout"
const REFRESH_URL = "auth/refresh"

export default {
    IS_LOCAL,
    API_BASE_URL,
    LOGIN_URL,
    LOGOUT_URL,
    REFRESH_URL
}

Затем, если мне нужна переменная конфигурации в файле, я просто вызываю:

import {REFRESH_URL, LOGIN_URL} from "./config.js"
person Jeff    schedule 25.04.2016
comment
Круто @Джефф!! Но как мне использовать этот process.env? Я имею в виду, как мне на моем производственном окружении, чтобы его значение было «производственным»? Прямо сейчас мой process.env.NODE_ENV возвращает значение undefined! - person Gustavo Bissolli; 25.04.2016