2016-04-25 11 views
4

Ich entwickle eine App mit Laravel + VueJS + Homestead und wie jeder weiß auf Laravel 5.2 haben wir eine Env-Datei, wo wir Env-Variablen festlegen können ... Ich würde gerne tun so etwas, aber in der Weise, wo ich von meinem JavaScript-Code darauf zugreifen kann!Wie bekomme ich ENV Typ Laravel + VueJS + Homestead

Ich habe über eine proccess.NODE_ENV gelesen, aber ich weiß nicht, ob ich es richtig verstanden habe, aber es sieht aus wie funktioniert nur auf npm Start Nein? Wie ich meine App durch Gehöft leite, weiß ich nicht wirklich, wie man es macht!

Vielen Dank im Voraus!

+0

Wenn Sie Webpack/Browserify verwenden, können Sie etwas wie 'var config = require ('./pfad/zu/config.json')' machen. http://stackoverflow.com/questions/5869216/how-to-store-node-j-de-ployment-settings-configuration-files – ceejayoz

+0

Hallo @ceejayoz ... Meine Hauptfrage ist, wie ich einstellen, welche env ich arbeite! Im Moment kommt mein proccess.NODE_ENV undefined zurück und ich kann herausfinden, wie es den richtigen Wert zurückgibt! Was ich mache, ist etwas wie unten vorgeschlagen ... aber ich weiß nicht, wie man den NODE_ENV den richtigen Wert zurückgibt! –

Antwort

4

Sie könnten die Umgebungsvariable APP_ENV auf die Seite hosten, auf der JavaScript gehostet wird, und später darauf zugreifen oder sie an Vue übergeben.

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

und dann in Ihrem Controller ...

$env = getenv("APP_ENV"); 

würden Sie den Wert von APP_ENV

+2

Ich bin mir nicht sicher, ob es ein sicherer Mann ist! Bei mir .env speichern wir normalerweise Sicherheitsvariablen als Verschlüsselungsschlüssel und solche Dinge! Wäre besser mit meinen envjs zu arbeiten ohne es mit meinem Laravel .env zu verlinken! –

+2

'getenv (" APP_ENV ")' würde buchstäblich nur ausgeben, was der Wert von '" APP_ENV "' in der .env-Datei ist - das wäre '" production "', '" staging "', '" development "', usw. –

+0

Wow !! Es sollte den Trick machen! Ich habe es nicht verstanden, Mann Entschuldigung !! Ich werde es versuchen !! Danke vielmals! –

8

erhalten Ich habe eine config.js Datei, die ich in der Konfigurationsvariablen zu halten, wie:

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 
} 

Dann, wenn ich eine Konfigurationsvariable in einer Datei brauche, rufe ich einfach:

+0

Cool @ Jeff !! Aber wie benutze ich diesen Prozess.env? Ich meine, wie ich auf meiner Produktion env, dass es Wert "Produktion" ist? Gerade jetzt kommt mein process.env.NODE_ENV undefined zurück! –

+0

@GustavoBissolli überprüfen Sie dieses Paket https://www.npmjs.com/package/cross-env – Jeff