将环境变量加载到 vue.js

Posted

技术标签:

【中文标题】将环境变量加载到 vue.js【英文标题】:Load environment variables into vue.js 【发布时间】:2017-01-18 11:14:59 【问题描述】:

我正在使用 node.js + vue.js 构建一个应用程序,想知道是否有人知道我如何将环境变量加载到我的 vue.js 组件中?现在我正在使用 dotenv 包在我的服务器端代码中加载环境变量,但它似乎不适用于 vue.js ..

提前致谢!

【问题讨论】:

您可以使用DefinePlugin,查看此answer。您还可以将 DefinePlugin 与 Configuration types 一起使用,就像在另一个 answer 中一样。 【参考方案1】:

您可以像这样从 NodeJS 公开环境变量:

console.log(process.env.EXAMPLE_VARIABLE);

更多详情process.env:https://nodejs.org/api/process.html#process_process_env

要在 Vue(或任何 javascript 框架)中向客户端公开您的环境变量,您可以呈现来自 NodeJS 的 JSON 响应,该响应通过 AJAX 调用获取。

【讨论】:

只能关闭dev server重启后环境变量,或者重新build~ 我刚刚像@mintedsky 建议的那样重新启动,它工作正常。 npm run serve - 谢谢 由于 Vue CLI 3,未来的观众可能会从这篇文章中受益:***.com/questions/50828904/…【参考方案2】:

使用Vue Cli 3,你可以像这样加载你的环境变量

    在应用程序的根目录中创建一个.env 文件。

    .env 文件中,为您的环境变量添加前缀VUE_APP_

    例如:VUE_APP_SECRET=SECRET

    现在您可以在应用程序代码中使用process.env.THE_NAME_OF_THE_VARIABLE 访问它们。

    例如:console.log(process.env.VUE_APP_SECRET)// SECRET

您可以阅读更多here

【讨论】:

当我这样做时,在控制台中打印的值是 'SECRET' 而不是从 express node.js 设置的 SECRET 的值 请不要将实际的秘密放入 .env 文件中,否则会暴露。

以上是关于将环境变量加载到 vue.js的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 使用不同的环境变量构建

json 配合Vue.js配置Webpack - 33.修改npm脚本,执行命令时一起输入环境变量

vue.js 开发环境搭建

如何使用 Vue.js + Vuex (createStore) 将“状态”变量保存到浏览器 localStorage

如何将环境变量添加到 AWS 放大?

Linux系统环境变量加载过程