环境变量的定义
- 在根目录下新建三个环境变量配置文件 .env.development(开发环境).env.test(测试环境).evn.production(生产环境)
- 分别定义开发环境、线上环境和测试环境的变量
- webpack
VUE_APP_TITLE = 学企来
# 开发环境配置
ENV = 'development'
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
- vite:默认只有 VITE_ 开头的变量可以被访问
环境变量的使用
-
webpack:
process.env.VUE_APP_TITLE
-
vite:
import.meta.env
-
vite.config.js:
loadEnv
import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ command, mode }) => {
// 根据当前工作目录中的 `mode` 加载 .env 文件
// 设置第三个参数为 '' 来加载所有环境变量,而不管是否有 `VITE_` 前缀。
const env = loadEnv(mode, process.cwd(), '')
return {
// vite 配置
define: {
__APP_ENV__: JSON.stringify(env.APP_ENV),
},
}
})
代理跨域配置
- 配置proxy:只在开发环境有效
import { loadEnv } from 'vite'
。。。。。。
export default defineConfig(({ command, mode }) => {
//获取各种环境下的对应的变量
let env = loadEnv(mode, process.cwd())
return {
。。。。。。。
//代理跨域
server: {
proxy: {
[env.VITE_APP_BASE_API]: {
//获取数据服务器地址的设置
target: env.VITE_SERVE,
//需要代理跨域
changeOrigin: true,
//路径重写
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
}
})