如何获取 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 变量