You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite读取环境变量报错TypeError: Cannot read properties of undefined (reading 'VITE_YOUTUBE_API_KEY')求助

Vite读取环境变量报错TypeError: Cannot read properties of undefined (reading 'VITE_YOUTUBE_API_KEY')求助

我在尝试从.env文件读取环境变量时遇到了这个错误,想求助大家帮忙看看问题出在哪!

先说说我的情况:

  • .env文件放在项目根目录
  • 变量都加了**VITE_**前缀
  • 我是这么导入变量的:const apiKey = import.meta.env.VITE_YOUTUBE_API_KEY;

我已经查了好多资料,大部分答案不是说“要加VITE前缀”就是“用import.meta.env”,这些我都照做了。后来我还尝试用loadEnv,结果在const env = loadEnv(mode, process.cwd(), '')这行报错“process is not defined”。

我的.env文件内容是这样的(也试过去掉变量的引号,结果还是一样):

MONGODB_URI="mongodb+srv://USER:PASS@cluster0.f2tb4tn.mongodb.net/tutorialsApp?retryWrites=true&w=majority&appName=Cluster0"
JWT_SECRET="JWT_SECRET"
VITE_YOUTUBE_API_KEY="YOUTUBE_API_KEY"
VITE_CHANNEL_ID="CHANNEL_ID"
VITE_CLIENT_ID="CLIENT_ID"

编辑补充:我的vite.config.js代码如下:

import { transformWithEsbuild, defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// Access import.meta.env directly
const appEnv = import.meta.env;

export default defineConfig({
  plugins: [
    {
      name: "treat-js-files-as-jsx",
      async transform(code, id) {
        if (!id.match(/src\/.*\.js$/)) return null;

        return transformWithEsbuild(code, id, {
          loader: "jsx",
          jsx: "automatic",
        });
      },
    },
    react(),
  ],
  optimizeDeps: {
    force: true,
    esbuildOptions: {
      loader: {
        ".js": "jsx",
      },
    },
  },
  define: {
    __APP_ENV__: JSON.stringify(appEnv),
  },
});

真的很需要大家的帮助,谢谢了!

备注:内容来源于stack exchange,提问作者Wasivis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:53:03