2016-04-25 43 views
4

我正在開發一個使用Laravel + VueJS + Homestead的應用程序,並且每個人都知道Laravel 5.2,我們有一個env文件,我們可以在其中設置env變量...我想做類似的東西,但在我可以從我的JavaScript代碼訪問它的方式!如何獲得ENV類型Laravel + VueJS + Homestead

我已閱讀關於proccess.NODE_ENV,但我不知道我是否得到它的權利,但它看起來像工程只在npm開始沒有?當我通過宅基地運行我的應用程序時,我不知道該怎麼做!

在此先感謝!

+0

如果您使用Webpack/Browserify,您可以執行類似'var config = require('./ path/to/config.json')'的操作。 http://stackoverflow.com/questions/5869216/how-to-store-node-js-deployment-settings-configuration-files – ceejayoz

+0

嗨@ceejayoz ...我的主要問題是我如何設置我工作的環境!現在我的proccess.NODE_ENV返回undefined,我可以弄清楚如何讓它返回正確的值!我正在做的是類似於下面提出的...但我不知道如何使NODE_ENV返回正確的值! –

回答

4

您可以將APP_ENV環境變量轉儲到託管JavaScript的頁面,稍後訪問它或將它傳遞給Vue。

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

,然後在你的控制器......

$env = getenv("APP_ENV"); 

會讓你的APP_ENV

+2

我不確定它是否安全!在我的.env中,我們通常將安全變量存儲爲加密密鑰等等。將我的envjs更好的工作,而不會鏈接到我的Laravel .env! –

+2

'getenv(「APP_ENV」)'只會輸出.env文件中''APP_ENV「'的值 - 這就是''production',''staging'',''development'',等等。 –

+0

哇!它應該做的伎倆!我沒有得到它人對不起!我會嘗試它!非常感謝! –

8

值我有一個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" 
+0

酷@Jeff !!但是,我如何使用process.env?我的意思是我如何在我的製作env上看重它是'製作'?現在我的process.env.NODE_ENV返回undefined! –

+0

@GustavoBissolli查看此軟件包https://www.npmjs.com/package/cross-env – Jeff