Dyl*_*yen 4 environment-variables vue.js vuejs2 vue-cli vue-cli-3
我已经尝试了所有解决方案,但似乎没有一种适合我。我只想将一些值存储.env在Vue应用程序内的文件中,但仅尝试记录即可process.env从组件内部返回一个空对象。
我的.env档案
VUE_APP_URL={api url}
VUE_APP_TOKEN={token}
Run Code Online (Sandbox Code Playgroud)
我的计划是将这些环境变量设置为数据属性,但它总是返回undefined。如果我console.log(process.env.NODE_ENV)从webpack.config.js中进行操作,它将显示我正在开发中,但是如果我尝试从类似组件的内部进行操作,
mounted() {
this.$nextTick(() => {
console.log(process.env.VUE_APP_URL);
})
}
Run Code Online (Sandbox Code Playgroud)
它只是返回undefined。
M3R*_*3RS 93
给在这里登陆的人的一些提示:
.env文件在项目根文件夹中(而不是在 say 中src/)VUE_APP_if开头,以静态嵌入到客户端包中:(来自 JSON 配置)替换为=(dotenv 格式)。容易错过.env文件的任何更改。config/dev.env.js而不是.envroot中的文件我知道这个问题是关于vue-cli3 的,它会生成 Vue 2 的代码。但如果你在 google 上搜索“vue3 does not embed env”和类似的查询,它就是最重要的结果,所以我假设很多人最终都会在这里process.env在 Vue 3 应用程序中遇到变量未定义的问题。
这是关于如何解决 Vue 3 环境问题的答案。
这就是造成混乱的原因
如果你用 google 搜索 vue 的环境问题,你最终会找到vue-cli文档。但在 Vue 3 中vue-cli被替换。create-vue页面顶部有一个警告框告诉你这一点,但你可能错过了它。
如果您没有错过它并点击框中的两个链接之一,您最终会进入 Vue 3 工具指南或存储库create-vue。这些资源都没有提到环境变量。但你了解到那create-vue是基于Vite的。
如果您按照该线索并谷歌搜索“vite env”,您最终会在vite文档中找到答案:
VITE_才能编译到应用程序中(而不是VUE_APP_in vue 2)import.meta.env(而不是process.env在vue 2)后一个是我花了最长的时间才弄清楚的。
这就是你需要这样做的方式
在.env项目根目录的文件中:
VITE_MY_ENV_VAR=foo
Run Code Online (Sandbox Code Playgroud)
该文档还将告诉您 Vite 中 .env 文件的不同命名模式。如果您在不同的环境中工作,非常有用的信息!
在你的应用程序中:
const my_env_var = import.meta.env.VITE_MY_ENV_VAR
Run Code Online (Sandbox Code Playgroud)
我希望这可以节省人们解决这个问题的时间。
如果您的vue-cli 版本高于3.x,并且将.env文件放在根目录中,如注释中所述。比起您可以从组件中访问环境变量(例如process.env.VUE_APP_YOUR_VARIABLE)。如vue-cli文档中所述
只有以开头的变量
VUE_APP_将通过静态嵌入客户端捆绑包中webpack.DefinePlugin。您可以在应用程序代码中访问它们:console.log(process.env.VUE_APP_SECRET)
我知道了-我不得不dotenv-webpack在webpack.config.js中安装并初始化它,这很奇怪,因为没有文档说明我需要这样做。
小智 5
安装dotenv-webpack和配置vue.config.js文件如下。
npm install dotenv-webpack --save-dev
Run Code Online (Sandbox Code Playgroud)
将此添加到您的配置文件中:
const Dotenv = require('dotenv-webpack');
module.exports = {
configureWebpack: {
plugins: [
new Dotenv()
]
}
}
Run Code Online (Sandbox Code Playgroud)
在您的.env文件中,请确保VUE_APP_在您的变量之前添加如下:
VUE_APP_VAR1=example
VUE_APP_VAR2=value
Run Code Online (Sandbox Code Playgroud)
现在您可以在 Vue 应用程序中访问这些变量:
VUE_APP_VAR1=example
VUE_APP_VAR2=value
Run Code Online (Sandbox Code Playgroud)
这里有一些链接供参考:
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |