在 Vite 项目中,通常会根据不同的环境(开发环境和生产环境)来配置 API 路径。这个配置通常通过环境变量来完成。在 Vite 中,环境变量的使用非常灵活,通常采用 .env 文件配合 VITE_ 前缀来定义环境变量。

1. 通过 .env 文件定义环境变量

你可以为不同的环境配置不同的 API 路径,常见的做法是创建多个 .env 文件:

  • .env - 用于默认环境变量
  • .env.development - 用于开发环境
  • .env.production - 用于生产环境

示例:

.env.development
VITE_API_URL=http://localhost:3000/api
.env.production
VITE_API_URL=https://prod-api.example.com/api
  • VITE_API_URL 在开发环境中指向 http://localhost:3000/api,而在生产环境中指向 https://prod-api.example.com/api

2. 在代码中使用环境变量

在项目的 JavaScript 或 TypeScript 代码中,你可以通过 import.meta.env 访问这些环境变量:

const apiUrl = import.meta.env.VITE_API_URL;

// 使用 apiUrl 进行 API 请求
fetch(`${apiUrl}/users`)
  .then(response => response.json())
  .then(data => console.log(data));

import.meta.env 通过读取 Vite 配置和环境变量自动注入相关变量。在开发时,它会使用 .env.development 中的变量,而在生产环境打包时,它会使用 .env.production 中的变量。

3. Vite 配置的使用方式

Vite 会在打包时根据环境自动加载相应的 .env 文件。在开发环境中,Vite 会自动使用 .env.development 文件中的配置;在生产环境中,Vite 会使用 .env.production 中的配置。

打包时的行为:

当你运行 vite build 命令时,Vite 会自动读取 .env.production 中的配置,并替换代码中的环境变量。

启动时的行为:

在开发环境中,执行 vitevite dev 命令时,Vite 会自动加载 .env.development 文件。

4. 动态替换环境变量

Vite 会在构建时根据环境变量的值进行替换。当你在代码中引用 import.meta.env.VITE_API_URL 时,Vite 会在生产环境中将它替换成 .env.production 中定义的值,而在开发环境中则使用 .env.development 中的值。

5. 通过 define 直接注入环境变量(可选)

除了使用 .env 文件,Vite 还允许你在 vite.config.js 文件中通过 define 选项来直接注入一些常量,供项目中使用。这对于在构建时指定 API 路径或其他常量非常有用。

// vite.config.js
import { defineConfig } from 'vite'

export default defineConfig({
  define: {
    'process.env.API_URL': JSON.stringify(process.env.VITE_API_URL || 'http://localhost:3000/api')
  },
})

然后在代码中直接使用 process.env.API_URL

const apiUrl = process.env.API_URL;

这种方法通常用于替换项目中的全局常量,但更推荐使用 .env 文件,因为它更加灵活且符合 Vite 的推荐实践。

6. 如何选择生产环境或开发环境的 API 路径

  • 开发环境:开发过程中,你的 API 通常指向本地的开发服务器。例如,http://localhost:3000/api
  • 生产环境:在生产环境中,你的 API 通常指向部署在生产服务器上的 API 路径。例如,https://api.example.com/api

通过 .env 文件和环境变量的配置,Vite 会根据环境自动选择合适的 API 路径,而无需你手动修改代码。

总结:

  1. .env 文件中定义不同环境下的 API 路径,例如 VITE_API_URL=http://localhost:3000/apiVITE_API_URL=https://prod-api.example.com/api
  2. 在代码中使用 import.meta.env.VITE_API_URL 来访问 API 路径
  3. Vite 会根据你运行的环境(开发或生产)自动选择相应的路径,并在构建时进行替换。

这种方法通过环境变量来灵活配置不同的 API 路径,使得开发和生产环境的配置相互独立,不需要修改代码即可在不同环境下使用不同的 API 地址。

最后修改:2025 年 01 月 08 日
如果觉得我的文章对你有用,请随意赞赏