Vue3+Vite2环境变量配置,分别配置本地,测试,正式

news/2024/7/10 0:17:47 标签: vue, 前端

第一步:

在Vue项目创建三个文件分别为.env .env.development .env.production与Vite.config.js同级别
在这里插入图片描述

//.env(配置本地开发地址)

VITE_HOST = '172.20.25.155'
VITE_PORT = 8080
VITE_BASE_URL = './'
VITE_OUTPUT_DIR = 'dist'
VITE_API_DOMAIN = 'http://10.1.1.111:8080/api/'//本地环境地址(可用于开发时联调)

//.env.development(配置测试环境地址)

NODE_ENV = development
VITE_API_DOMAIN = 'http://aaa.com:8080/api'//测试环境地址

//.env.production(配置正式环境地址)

NODE_ENV = production
VITE_API_DOMAIN = 'http://fund-wx.aisidicredit.com/wechat-api'//正式环境地址

第二步

Vite.config.js配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
const fs = require("fs")
const dotenv = require("dotenv")
const { resolve } = require('path') // 编辑器提示 path 模块找不到,可以yarn add @types/node --dev

export default ({ command, mode }) =>{
	let NODE_ENV =  process.env.NODE_ENV || 'development';
	let envFiles = [];
	//根据不同的环境使用不同的环境变量
	if(command == 'serve'){
		envFiles = [
			/** default file */
			`.env`
		]
	}else{
		envFiles = [
			/** default file */
			`.env`,
			/** mode file */
			`.env.${NODE_ENV}`
		]
	}
	for (const file of envFiles) {
		const envConfig = dotenv.parse(fs.readFileSync(file))
		for (const k in envConfig) {
			process.env[k] = envConfig[k]
		}
	}
	return defineConfig({
		plugins: [vue()],
		resolve: {
		    alias: {
		      '@': resolve(__dirname, 'src') // 设置 `@` 指向 `src` 目录
		    }
		},
		server: {
			host: process.env.VITE_HOST,
			port: process.env.VITE_PORT,
			// 是否自动在浏览器打开
			open: true,
			// 是否开启 https
			https: false,
			// 服务端渲染
			ssr: false,
			base: process.env.VITE_BASE_URL,
			outDir: process.env.VITE_OUTPUT_DIR,
			proxy: {
			  '/api': {
				target: 'http://api网关所在域名',
				changeOrigin: true,
				rewrite: (path) => path.replace(/^\/api/, '')
			  },
			}
		},
	})
}

第三步package.json配置

//可根据自己的打包命令配置命令名称
"scripts": {
    "dev": "vite",
    "test": "cross-env vite build --mode development",
    "build": "cross-env vite build --mode production"
  }

http://www.niftyadmin.cn/n/689741.html

相关文章

Canvas 宽度、高度设置

在HTML5中插入一个Canvas元素&#xff0c;如下&#xff1a; <canvas id"mycanvas"></canvas> 要想在该画板上进行操作&#xff0c;则需要先取得其执行上下文context&#xff0c; 1 var canvas document.getElementById("mycanvas"); 2 var co…

机器视觉 之 Gabor Feature

在机器视觉中&#xff0c;gabor feature是一种比较常见的特征&#xff0c;因为其可以很好地模拟人类的视觉冲击响应而被广泛应用于图像处理&#xff0c; gabor feature 一般是通过对图像与gabor filter做卷积而得到&#xff0c;gabor filter定义为高斯函数与正弦函数的乘积&…

MySQL 主从复制与读写分离概念及实践

1.MySQL主从复制入门首先&#xff0c;我们看一个图&#xff1a;影响MySQL-A数据库的操作&#xff0c;在数据库执行后&#xff0c;都会写入本地的日志系统A中。 假设&#xff0c;实时的将变化了的日志系统中的数据库事件操作&#xff0c;在MYSQL-A的3306端口&#xff0c;通过网络…

java导出pdf 含图片_【Java】itext根据模板生成pdf(包括图片和表格)

1、导入需要的jar包&#xff1a;itext-asian-5.2.0.jar itextpdf-5.5.11.jar。2、新建word文档&#xff0c;创建模板&#xff0c;将文件另存为pdf&#xff0c;并用Adobe Acrobat DC打开编辑&#xff0c;点击右侧【准备表单】后点击【开始】3、在需要插入数据的空白处&#xff0…

10款jQuery图片左右滚动插件

在现代的网页设计中&#xff0c;图片和内容滑块是一种极为常见和重要的元素。你可以从头开始编写自己的滑动效果&#xff0c;但是这将浪费很多时间&#xff0c;因为网络上已经有众多的优秀的 jQuery 滑块插件。当然&#xff0c;如果要从大量的 jQuery Slider 中挑选出适合自己的…

MongoDB 进阶模式设计

转载&#xff1a; http://www.mongoing.com/mongodb-advanced-pattern-design 12月12日上午&#xff0c;TJ在开源中国的年终盛典会上分享了文档模型设计的进阶技巧&#xff0c;就让我们来回顾一下吧: ————————————————————————————————————…

Vue3+ElementPlus el-menu子菜单设置父菜单选中技巧

前言&#xff1a;当我们在做后台系统开发的时候&#xff0c;经常会遇到一个页面既可以是菜单页面&#xff0c;又可以是某个页面的字页面的时候&#xff0c;那么这个时候在路由跳转的时候就需要保持父页面选中的状态&#xff0c;这个时候其实页面完全可以复用的&#xff0c;只需…

excel java_excel往java中导入怎么解决

展开全部1、加入依赖的jar文件32313133353236313431303231363533e59b9ee7ad9431333361326330&#xff1a;123引用&#xff1a;*mysql的jar文件*Spring_HOME/lib/poi/*.jar2、编写数据库链接类12345678910111213141516171819202122232425package com.zzg.db;import java.sql.Con…