问题:在本地 npm run dev 能跑通代码,请求接口没问题,但是 npm run build 打包上线,出现了地址为:http://local... 代码请求接口请求不了,主要是请求的路径写错了
在 Vue 项目中,.env 文件用于配置环境变量,以便在不同的环境(如开发、生产、测试等)中使用不同的配置。这些文件的命名约定和用途如下:
.env 文件
- .env: 默认的环境变量文件,所有环境共享的变量。这个文件中的变量会被所有其他环境使用,除非在更具体的环境文件中被覆盖。
环境特定的 .env 文件
- .env.development: 开发环境使用的环境变量文件。当你运行开发服务器(例如使用 npm run dev 或 yarn dev)时,Vue 会加载这个文件中的变量。
- .env.production: 生产环境使用的环境变量文件。当你构建项目(例如使用 npm run build 或 yarn build)时,Vue 会加载这个文件中的变量。
- .env.local: 本地开发环境使用的环境变量文件,不会被版本控制(通常在 .gitignore 文件中忽略)。适用于开发人员的本地配置。
优先级
Vue 会按照以下优先级加载环境变量:
- .env.local
- .env.development(仅在开发环境中)
- .env.production(仅在生产环境中)
- .env
这意味着如果同一个变量在多个文件中定义,Vue 会使用优先级更高的文件中的值。例如,如果 VITE_API_BASE_URL 在 .env 和 .env.local 中都有定义,开发时会优先使用 .env.local 中的值。
示例
假设你有以下三个文件:
.env
ini
复制代码
VITE_API_BASE_URL=https://default-url.com
.env.development
ini
复制代码
VITE_API_BASE_URL=http://localhost:3000
.env.production
ini
复制代码
VITE_API_BASE_URL=https://api.production-url.com
.env.local
ini
复制代码
VITE_API_BASE_URL=http://localhost:15421
用法
- 开发环境: 当你运行 npm run dev 或 yarn dev 时,Vue 会加载 .env, .env.local, 和 .env.development 文件中的变量。
bash
复制代码
npm run dev
使用的 VITE_API_BASE_URL 将是 http://localhost:15421,因为 .env.local 的优先级高于 .env.development 和 .env。
- 生产环境: 当你运行 npm run build 或 yarn build 时,Vue 会加载 .env 和 .env.production 文件中的变量。
bash
复制代码
npm run build
使用的 VITE_API_BASE_URL 将是 https://api.production-url.com,因为 .env.production 的优先级高于 .env。
结论
- .env: 基础配置文件,适用于所有环境。
- .env.development: 仅开发环境使用的配置。
- .env.production: 仅生产环境使用的配置。
- .env.local: 本地开发的配置,优先级最高,不会被版本控制,适用于每个开发人员的本地环境。