javascript - Import.meta.env 在生产构建 vitejs 上未定义

标签 javascript node.js reactjs vite

我正在使用 vitejs 静态编译我的 react 应用程序,但是在构建 .env 导入之后变得未定义,这在开发阶段并非如此。
阅读文档我发现这些变量被它们对应的值替换,但是在提供它之后查看开发工具中的源/编译代码时,会显示一个带有 env 名称/键的空对象
enter image description here
我可能在 vite.config.ts 中有错误的配置,所以在这里。

//vite.config.ts
import { defineConfig, loadEnv } from 'vite';
import reactRefresh from '@vitejs/plugin-react-refresh';
import { getAliases } from 'vite-aliases';

const aliases = getAliases({
  path: 'src',
  prefix: '@',
});

export default ({ mode }) => {
  process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };

  // import.meta.env.VITE_NAME available here with: process.env.VITE_NAME
  // import.meta.env.VITE_PORT available here with: process.env.VITE_PORT

  const plugins = mode === 'development' ? [reactRefresh()] : [];
  return defineConfig({
    plugins,
    publicDir: 'src/assets',
    resolve: {
      alias: aliases,
    },
    build: {
      chunkSizeWarningLimit: 1500,
    },
  });
};
还有我引用这些环境变量的代码
//config.ts
export const config = () => {
  const url = import.meta.env.VITE_SERVER_URL;
  const api = import.meta.env.VITE_API_ENDPOINT;
  const auth = import.meta.env.VITE_AUTH_ENDPOINT;

  const isProd = import.meta.env.MODE === 'production';
  const isDev = import.meta.env.MODE === 'development';

  console.log(url, api, auth);
  return {
    api: (endpoint: string) => `${url}${api}${endpoint}`,
    auth: (endpoint: string) => `${url}${auth}${endpoint}`,
    test: (endpoint: string) => `${url}test${endpoint}`,
    isProd,
    isDev,
  };
};

最佳答案

我刚刚意识到 ViteJS 文档所说的内容,我会留下它,以防有人也遭受这种痛苦。
enter image description here

关于javascript - Import.meta.env 在生产构建 vitejs 上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67378099/

相关文章:

Javascript:在 javascript 中插入换行符的正确方法

PHP/HTML/JavaScript : Automatically leave page?

node.js - 是否可以使用子文件夹将 sails 中的 Controller 分组?

node.js - 使用 formData 获取 POST 在 Express JS 路由中为空

node.js - Nodejs 浏览器同步 - 日志记录

javascript - react-router 在每次转换时滚动到顶部

javascript - 对受限 URI 的访问被拒绝。 Firebug

reactjs - 无法使用 FormData 上传图像

javascript - 如何从 express 服务器返回 json?

reactjs - React.js 未捕获错误 : Invariant Violation