在 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
中的配置,并替换代码中的环境变量。
启动时的行为:
在开发环境中,执行 vite
或 vite 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 路径,而无需你手动修改代码。
总结:
- 在
.env
文件中定义不同环境下的 API 路径,例如VITE_API_URL=http://localhost:3000/api
和VITE_API_URL=https://prod-api.example.com/api
。 - 在代码中使用
import.meta.env.VITE_API_URL
来访问 API 路径。 - Vite 会根据你运行的环境(开发或生产)自动选择相应的路径,并在构建时进行替换。
这种方法通过环境变量来灵活配置不同的 API 路径,使得开发和生产环境的配置相互独立,不需要修改代码即可在不同环境下使用不同的 API 地址。