vue3配置测试环境、开发环境、生产环境
第一步:在src同级新建 .env.production 、.env.test 、.env.development文件
第二步:在文件中配置开发环境、生产环境、测试环境
// 开发环境 .env.developmentNODE_ENV = 'development'VUE_APP_MODE = 'development' outputDir = dist_dev // 打出包的名称VUE_APP_BASE_URL = http://xxxxxxxxx:xxxx/// 生产环境 .env.productionNODE_ENV = 'production'VUE_APP_MODE = 'production'outputDir = dist_proVUE_APP_BASE_URL = http://xxxxxxxxx:xxxx/// 测试环境 .env.testNODE_ENV = 'alpha' // 此处不能为test,否则会报错VUE_APP_MODE = 'alpha'// 此处不能为test,否则会报错outputDir = dist_testVUE_APP_BASE_URL = http://xxxxxxxxxxxx:xxxx/
第三步:在axios.js中配置基础
import axios from "axios";
import { ElMessage, ElMessageBox } from 'element-plus'
import router from '../router/index';
//axios请求配置
const config = {// 访问后端baseURL: process.env.VUE_APP_BASE_URL,//超时时间timeout: 1000000
}
//class:定义一个类
class Server {//构造函数里面初始化constructor(config) {this.instance = axios.create(config)//定义拦截器:请求发送之前和请求返回之后处理this.interceptors()}//拦截器interceptors() {//axios发送请求之前的处理this.instance.interceptors.request.use((config) => {//token携带let token = localStorage.getItem('token');if (token != null) {config.headers.token = token}let tokenUser = localStorage.getItem('tokenUser');if (tokenUser != null) {config.headers.tokenUser = tokenUser}return config;}, (error) => {error.data = {}error.data.msg = '服务器异常,请联系管理员!'return error;})//axios请求返回之后的处理//请求返回之后的处理this.instance.interceptors.response.use((res) => {if (res.data.code == 0 && res.data.msg?.includes('请先注册')) {return res.data;}if (res.data.code == 0) {if (res.data.msg != 'wxnull') {ElMessage({ type: 'error', message: res.data.msg })}return res.data} else {return res.data}}, (error) => {error.data = {};if (error && error.response) {switch (error.response.status) {case 400:error.data.msg = '错误请求';return ElMessage({ type: 'error', message: error.data.msg })case 401:error.data.msg = '未授权,请重新登录';return ElMessage({ type: 'error', message: error.data.msg })case 403:error.data.msg = '拒绝访问';return ElMessageBox.confirm('很抱歉,登录已过期,请重新登录', '登录已过期', {confirmButtonText: '重新登录',type: 'error',showCancelButton: false}).then(() => {router.push('/login');localStorage.removeItem('token');})case 404:error.data.msg = '请求错误,未找到该资源';return ElMessage({ type: 'error', message: error.data.msg })case 405:error.data.msg = '请求方法未允许';return ElMessage({ type: 'error', message: error.data.msg })case 408:error.data.msg = '请求超时';return ElMessage({ type: 'error', message: error.data.msg })case 500:error.data.msg = '服务器端出错';return ElMessage({ type: 'error', message: error.data.msg })case 501:error.data.msg = '网络未实现';return ElMessage({ type: 'error', message: error.data.msg })case 502:error.data.msg = '网络错误';return ElMessage({ type: 'error', message: error.data.msg })case 503:error.data.msg = '服务不可用';return ElMessage({ type: 'error', message: error.data.msg })case 504:error.data.msg = '网络超时';return ElMessage({ type: 'error', message: error.data.msg })case 505:error.data.msg = 'http版本不支持该请求';return ElMessage({ type: 'error', message: error.data.msg })default:error.data.msg = `连接错误${error.response.status}`;return ElMessage({ type: 'error', message: error.data.msg })}} else {error.data.msg = "连接到服务器失败";// router.push('/login');return ElMessage({ type: 'error', message: error.data.msg })}return Promise.reject(error)})}/* GET 方法 */get(url, params) {return this.instance.get(url, { params })}/* POST 方法 */post(url, data) {return this.instance.post(url, data)}/* PUT 方法 */put(url, data) {return this.instance.put(url, data)}/* DELETE 方法 */delete(url) {return this.instance.delete(url)}//图片上传upload(url, params) {return this.instance.post(url, params, {headers: {'Content-Type': 'multipart/form-data'}})}upimg(url, params) {return this.instance.get(url, params, {headers: {'Content-Type': 'application/octet-stream'}})}
}
export default new Server(config)
第四步:在package.json中配置基础
"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint","serve:development": "vue-cli-service serve --mode development","build:development": "vue-cli-service build --mode development","serve:production": "vue-cli-service serve --mode production","build:production": "vue-cli-service build --mode production"}
// 使用yarn/npm run serve:development/production 运行
// 使用yarn/npm run build:development/production 打包
第五步:在babel.config.js中配置基础
compact: false, // 加上此项配置env: {development: {plugins: ['dynamic-import-node']}}
相关文章:
vue3配置测试环境、开发环境、生产环境
第一步:在src同级新建 .env.production 、.env.test 、.env.development文件 第二步:在文件中配置开发环境、生产环境、测试环境 // 开发环境 .env.developmentNODE_ENV developmentVUE_APP_MODE development outputDir dist_dev // 打出包的名称VUE_…...
Jsonlizer,一个把C++各类数据转成 Json 结构体的玩意儿
这段时间突发奇想,觉得可以弄一个Json和C各种数据类型互转的工具,因为Json在进行数据储存的时候,有一些先天的优势,传统的C的序列化方式是将数据序列化到流数据里面,而流数据是典型的串行结构(或则说是一维…...
Qt仿音乐播放器:设置窗口、部件属性
// 设置窗口标志 this->setWindowFlag(Qt::FramelessWindowHint); //此设置将窗口设置成无边框模式//设置窗口背景透明 this->setAttribute(Qt::WA_TranslucentBackground,true); attribute:属性 Translucent:半透明 Qt::WA_TranslucentBackgro…...
使用 .NET 6 或 .NET 8 上传大文件
如果您正在使用 .NET 6,并且它拒绝上传大文件,那么本文适合您。 我分享了一些处理大文件时需要牢记的建议,以及如何根据我们的需求配置我们的服务,并提供无限制的服务。 本文与 https://blog.csdn.net/hefeng_aspnet/arti…...
基于特征工程(pca分析)、小波去噪以及数据增强,同时采用基于注意力机制的BiLSTM、随机森林、ARIMA模型进行序列数据预测
本文采用特征工程(pca分析)、小波去噪以及数据增强,同时采用基于注意力机制的BiLSTM、随机森林、ARIMA模型进行序列数据预测 基于BILSTM(双向长短期记忆网络)、随机森林回归和ARIMA(自回归积分滑动平均&am…...
攻防世界 PHP2
开启场景 访问 /index.php,页面无变化 访问 /index.phps index.php 和 index.phps 文件之间的主要区别在于它们的文件扩展名。 index.php:这是一个标准的 PHP 文件,通常用于编写 PHP 代码。当用户访问 index.php 文件时,Web 服务器…...
主板idyy
import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MachineCodeGenerator { // 获取主板ID(这需要根据操作系统具体实现) private static String getMotherboardID() {…...
轻松实现向量搜索:探索 Elastic-Embedding-Searcher 项目
随着人工智能和机器学习技术的飞速发展,向量搜索已成为数据检索的重要方式。尤其是在处理大规模文本数据时,传统的基于关键词的检索方式已经难以满足需求。为了优化检索性能并提升搜索精度,向量搜索成为了更加高效的解决方案。而在这一领域&a…...
flask后端开发(3):html模板渲染
目录 渲染模板html模板获取路由参数 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 渲染模板 这样就能够通过html文件来渲染前端,而不是通过return了 html模板获取路由参数...
逻辑控制语句
一、逻辑控制语句 条件判断 if循环 for、while 二、条件判断 if 1、语法 if 条件:条件为真的操作条件为真的操作 else:条件为假的操作条件为假的操作 data_01 int(input("数字: "))if data_01 > 10:print("ok!!!")print("正确!!!")prin…...
[OpenGL]使用 Compute Shader 实现矩阵点乘
一、简介 本文介绍了如何使用 OpenGL 中的 compute shader 进行矩阵相乘的并行运算。代码目标是,输入两个大小为 10*10 的矩阵 A 和 B,计算 A*B 的结果并存储到矩阵 C 中。 二、代码 0. 代码逻辑 1. 初始化 glfw, glad, 窗口 2. 初始化 compute shad…...
jangow-01-1.0.1靶机
靶机 ip:192.168.152.155 把靶机的网络模式调成和攻击机kali一样的网络模式,我的kali是NAT模式, 在系统启动时(长按shift键)直到显示以下界面 ,我们选第二个,按回车。 继续选择第二个,这次按 e 进入编辑页面 接下来,…...
MySQL 查询大偏移量(LIMIT)问题分析
大偏移量查询缓慢?LIMIT: 会进行两步操作 性能消耗在哪里了?OFFSET操作问题 2 LIMIT 操作 如何优化? 大偏移量查询缓慢? 示例:(假设age字段有索引) SELECT * FROM test WHERE age>18 LIMIT 10000000 ,10;分析MySQL的 LIMIT 10000000 , 10 LIMIT: 会进行两步操作 OFF…...
Docker、containerd、安全沙箱、社区Kata Containers运行对比
大家看了解决有意义、有帮助记得点赞加关注!!! containerd、安全沙箱和Docker三种运行对比。 本文通过对比三种运行时的实现和使用限制、部署结构,帮助您根据需求场景了解并选择合适的容器运行。 一、容器运行时实现和使用限制…...
使用npm包的工程如何引入mapboxgl-enhance/maplibre-gl-enhance扩展包
作者:刘大 前言 在使用iClient for MapboxGL/MapLibreGL项目开发中,往往会对接非EPSG:3857坐标系的地图,由于默认不支持,因此需引入mapboxgl-enhance/maplibre-gl-enhance扩展包。 在使用Vue等其他框架,通过npm包下载…...
【NIFI】实现ORACLE->ORACLE数据同步
【NIFI】实现ORACLE->ORACLE数据同步 需求 使用nifi实现 oracle->oracle 不同数据库之间的数据同步, 如果想实现 oracle->oracle技术有很多,例如使用oracle golden gate或者是kettle等,或者是使用oralce的dblink技术也能实现。当让…...
单例模式的写法
单例模式(Singleton Pattern)是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点。常用于管理共享资源(如数据库连接、配置文件、线程池等)。在实际编码中,有多种实现单例模式的方法&…...
Selenium实践总结
1.使用显示等待而不是隐式等待 隐式等待可能会导致不可预测的测试行为,尤其是在动态 Web 应用程序中。显式等待,它允许您 等待特定条件发生后再继续测试,这种方法提供了更多的控制和可靠性。 WebDriverWait wait new WebDriverWait(drive…...
Python数据可视化小项目
英雄联盟S14世界赛选手数据可视化 由于本学期有一门数据可视化课程,课程结课作业要求完成一个数据可视化的小Demo,于是便有了这个小项目,课程老师要求比较简单,只要求熟练运用可视化工具展示数据,并不要求数据来源&am…...
Python毕业设计选题:基于python的白酒数据推荐系统_django+hive
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 白酒管理 系统管理 看板展示 系统首页 白酒详情…...
推荐8款提升论文效率的AI工具(含爱毕业aibiye)和简易使用教程
在学术研究领域,AI技术的应用显著提升了论文写作的效率与质量。以下推荐8款功能强大的智能工具,涵盖文献解析、内容生成、文本优化等关键环节,助力研究者高效完成从资料收集到论文润色的全流程工作。这些创新解决方案能够有效简化研究过程&am…...
如何用Planck-Pi实现低成本嵌入式开发?基于F1C200s的全栈方案解析
如何用Planck-Pi实现低成本嵌入式开发?基于F1C200s的全栈方案解析 【免费下载链接】Planck-Pi Super TINY & Low-cost Linux Develop-Kit Based On F1C200s. 项目地址: https://gitcode.com/gh_mirrors/pl/Planck-Pi Planck-Pi作为一款基于全志F1C200s芯…...
CBAM实战指南:如何通过通道与空间注意力提升CNN模型性能
1. 为什么你的CNN模型需要CBAM注意力模块 如果你正在使用卷积神经网络(CNN)处理图像分类任务,可能会遇到这样的困境:模型在训练集上表现不错,但测试集准确率始终卡在一个瓶颈。这时候不妨试试CBAM(Convolu…...
用C#和ONNX Runtime搞定车牌识别:从模型部署到双层车牌分割的实战避坑
C#与ONNX Runtime实战:车牌识别系统开发全流程与双层车牌处理精要 车牌识别技术已经从实验室走向了各行各业,从停车场管理到交通执法,再到智慧城市建设,这项技术正在改变我们与车辆的交互方式。作为一名长期奋战在计算机视觉一线的…...
Alpamayo-R1-10B参数详解:Top-p=0.98与Temperature=0.6组合的工程意义解析
Alpamayo-R1-10B参数详解:Top-p0.98与Temperature0.6组合的工程意义解析 1. 项目背景与技术架构 1.1 Alpamayo-R1-10B核心定位 Alpamayo-R1-10B是NVIDIA开发的自动驾驶专用视觉-语言-动作(VLA)模型,其核心设计目标是通过类人因果推理能力提升自动驾驶…...
PyTorch 2.5 + Jupyter 开发环境搭建:5分钟搞定AI模型训练与调试
PyTorch 2.5 Jupyter 开发环境搭建:5分钟搞定AI模型训练与调试 1. 环境准备与快速部署 PyTorch 2.5作为当前最流行的深度学习框架之一,其开箱即用的特性让AI开发变得前所未有的简单。我们将使用预配置好的PyTorch-CUDA基础镜像,快速搭建完…...
程序替换与shell
程序替换函数execlexeclpexecvexecvpexecvpeexecle一共介绍七个函数 这里全都是以exec开头的 执行任何程序, 需要: 1.找到它 加载它(路劲加程序名) 2.怎么执行(例如ls,你想带什么选项呀,如 -l -a -d之类&a…...
steam_api.dll是什么文件?全面解析其作用与安全修复方法
不少玩家在启动Steam游戏时,都曾被“无法启动此程序,因为计算机中丢失steam_api.dll”这样的提示拦在门外。看着这串乱码般的文件名,第一反应通常是:这是什么?为什么没了它游戏就不动了?别急,这…...
3大创新突破:CoreCycler单核心稳定性测试全攻略
3大创新突破:CoreCycler单核心稳定性测试全攻略 【免费下载链接】corecycler Script to test single core stability, e.g. for PBO & Curve Optimizer on AMD Ryzen or overclocking/undervolting on Intel processors 项目地址: https://gitcode.com/gh_mir…...
如何快速批量下载知网文献?CNKI-download自动化工具终极指南
如何快速批量下载知网文献?CNKI-download自动化工具终极指南 【免费下载链接】CNKI-download :frog: 知网(CNKI)文献下载及文献速览爬虫 项目地址: https://gitcode.com/gh_mirrors/cn/CNKI-download 对于学术研究者和学生来说,从知网࿰…...
