【问题标题】:Vue.js uses old values of environment variables after I change themVue.js 在我更改环境变量后使用它们的旧值
【发布时间】:2021-06-16 00:36:53
【问题描述】:

我正在开发一个 Vue.js 项目。我有一个 .env.development 文件,其中包含一些 VUE_APP_* 环境变量。我更改了一些变量的值,但 Vue.js 代码仍然使用以前的值。

我尝试了一切:我停止并使用npm run serve重新启动服务器,我删除了node_sass文件夹并再次启动npm install,我完全重新安装了nodejs(我还删除了~/.npm文件夹),我克隆了一个新副本从存储库中删除我的项目,我重新启动了我的计算机,但它仍然读取变量的旧值。

我还尝试删除 .env.development 文件,它给了我一个错误,这意味着它正在从正确的位置读取变量,但是当我恢复已删除的文件时,它一直在读取旧值。

如果我更改变量的值,它仍然显示旧值,如果我添加一个新变量,它显示undefined。我没有其他环境文件,我也在所有文件内容中搜索了变量的名称,这是唯一声明它的地方。

你知道 Vue 或 Node.js 是否将缓存的变量保存在某处吗?

我正在使用最新版本的 Linux Mint 和 node.js 10.19.0、npm 6.14.4(我也尝试过使用最新版本)和 Vue.js 2.6

谢谢

编辑:这是代码

<template>
  ...
</template>

<script>
  export default {
    created() {
      console.log(process.env.VUE_APP_MYVAR);
    },
    data() {
      return { }
    }
</script>

【问题讨论】:

  • 节点不应缓存文件的内容。您可以包含读取文件的代码部分吗?
  • 好的,我把代码加到帖子里了
  • 您包含的代码是使用环境变量的代码,而不是读取文件的代码。
  • 在实践中有什么不同?无论如何,我的意思是当我 npm run serve 我的 Vue.js 应用程序时,console.log 的输出是旧值
  • 1.您确定您的模式设置为development? 2.您有任何后备值吗?

标签: node.js vue.js npm environment-variables


【解决方案1】:

我刚刚遇到了同样的问题,这是因为 vue 服务器已经在我不知情的情况下运行,所以当我运行 vue-cli-service serve 时,它并没有更新浏览器中出现的 env 变量。为了解决这个问题,我发现进程在 8080 端口上运行,这是 vue 的默认端口并将其杀死。首先运行lsof i:8080 并使用kill {PID} 杀死节点进程。

【讨论】:

    猜你喜欢
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2014-12-09
    • 2017-11-02
    • 2014-04-15
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多