Vite多环境配置以及proxy配置

多环境配置的实现方式

.env                # 所有情况下都会加载
.env.local          # 所有情况下都会加载,但会被 git 忽略
.env.[mode]         # 只在指定模式下加载
.env.[mode].local   # 只在指定模式下加载,但会被 git 忽略

注意:

  • .env.xxx 的文件,配置的变量必须是以 VITE_ 开头:
    如: VITE_BASE_URL=/api
    如果你想自定义 env 变量的前缀,请参阅 envPrefix
  • 可以通过import.meta.env获取配置的不同环境下的变量(import.meta.env 在vite.config.ts中获取不到)

在vite.config.ts中配置proxy

vite提供了一个loadEnv函数,用于加载到不同环境配置文件相关参数。

loadEnv:加载 envDir 中的 .env 文件。默认情况下只有前缀为 VITE_ 会被加载,除非更改了 prefixes 配置。(envDir :用于加载 .env 文件的目录)

function loadEnv(
  mode: string,
  envDir: string,
  prefixes: string | string[] = 'VITE_'
): Record<string, string>

import { createVitePlugins } from './build/vite/plugins';
import { resolve } from 'path';
import { ConfigEnv, UserConfigExport, loadEnv } from 'vite';

const pathResolve = (dir: string) => {
  return resolve(process.cwd(), '.', dir);
};

// https://vitejs.dev/config/
export default function ({ command }: ConfigEnv): UserConfigExport {
  const root = process.cwd();
  // const env = loadEnv(mode, __dirname)
  const env = loadEnv(command, root);
  return {
    root,
    server: {
      host: true,
      hmr: true,
      proxy: {
        [env.VITE_BASE_URL]: {
          target: env.VITE_TARGET_URL,
          changeOrigin: true,
          secure: false,
          rewrite: (path) =>
            path.replace(new RegExp(`^${env.VITE_BASE_URL}`), '')
        }
      }
    },
  };
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值