如何获取 ENV 类型 Laravel + VueJS + Homestead

Posted

技术标签:

【中文标题】如何获取 ENV 类型 Laravel + VueJS + Homestead【英文标题】:How to get ENV type Laravel + VueJS + Homestead 【发布时间】:2016-08-18 05:51:03 【问题描述】:

我正在使用 Laravel + VueJS + Homestead 开发一个应用程序,众所周知,在 Laravel 5.2 上,我们有一个 env 文件,我们可以在其中设置 env 变量......我想做类似的事情,但我可以访问它来自我的 javascript 代码!

我已经阅读了有关 proccess.NODE_ENV 的信息,但我不知道我是否正确,但它看起来只能在 npm start 上工作,不是吗?当我通过宅基地运行我的应用程序时,我真的不知道该怎么做!

提前致谢!

【问题讨论】:

如果你使用 Webpack/Browserify,你可以做类似var config = require('./path/to/config.json') 的事情。 ***.com/questions/5869216/… 嗨@ceejayoz ...我的主要问题是我如何设置我正在工作的环境!现在我的 proccess.NODE_ENV 返回未定义,我可以弄清楚如何让它返回正确的值!我正在做的事情类似于下面提出的......但我不知道如何让 NODE_ENV 返回正确的值! 【参考方案1】:

我有一个 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"

【讨论】:

酷@Jeff!!但是我如何使用那个 process.env?我的意思是如何在我的生产环境中认为它的价值是“生产”?现在我的 process.env.NODE_ENV 正在返回 undefined!【参考方案2】:

您可以将 APP_ENV 环境变量转储到托管 JavaScript 的页面,然后访问它或将其传递给 Vue。

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

然后在你的控制器中...

$env = getenv("APP_ENV");

会给你APP_ENV的值

【讨论】:

我不确定它是否安全!在我的 .env 中,我们通常将安全变量存储为加密密钥之类的东西!如果不将它链接到我的 Laravel .env 会更好地使用我的 envjs! getenv("APP_ENV") 实际上只会输出 .env 文件中 "APP_ENV" 的值 - 这将是 "production""staging""development" 等。 哇!!它应该可以解决问题!没看懂大佬抱歉!!我要试试!!非常感谢!

以上是关于如何获取 ENV 类型 Laravel + VueJS + Homestead的主要内容,如果未能解决你的问题,请参考以下文章

.env 变量在 Laravel 项目中的 Vue 组件中返回 undefined

在 Inertia.js Vue 文件中访问 Laravel 的 .env 变量

laravel5.4+vue+element简单搭建(转)

关于Lumen / Laravel .env 文件中的环境变量是如何生效的

从 Laravel 中的 .env 返回数据类型

如何为 dotenv 获取特定于环境的 .env 文件(在 Laravel 5 中)