Vite - 配置 - 不同的环境执行不同的配置文件

news2024/11/28 5:49:17

目标描述

通过不同的命令,执行不同的环境的配置文件中的内容:

npm run dev : 执行开发环境的配置文件
npm run build: 执行生产环境的配置文件

环境文件准备

为了在不同的环境中使用不同的配置文件,我们将配置文件拆分开来。
开发环境使用开发环境的配置文件;
生产环境使用生产环境的配置文件;
有一些通用的配置,就放在 基础环境配置文件中。
这样我们通过执行不同的脚本命令,直接读取不同的配置文件即可。

项目目录结构如下:

study-vite
  | -- node_modules
  | -- index.html
  | -- main.js
  | -- package.json
  | -- vite.config.js 【vite 的配置文件】
  | -- environment  【存放不同环境配置文件的目录】
    | -- vite.base.config.js
    | -- vite.dev.config.js
    | -- vite.prod.config.js

01-基础的环境配置文件

文件名称 : vite.base.config.js

/**
 * 基础环境的配置,目前来讲还没有配置任何的内容
 */
import { defineConfig } from "vite"
console.log('load base-config...')
export default defineConfig({
   
})

02-开发环境配置文件

文件名称 : vite.dev.config.js

/**
 * 开发环境的配置,目前来讲还没有配置任何的内容
 */

import { defineConfig } from "vite"
console.log('load dev-config...')
export default defineConfig({
   
})

03-生产环境配置文件

文件名称 : vite.prod.config.js

/**
 * 生产环境的配置,目前来讲还没有配置任何的内容
 */

import { defineConfig } from "vite"
console.log('load prod-config...')
export default defineConfig({
   
})

04-vite.config.js配置文件


import { defineConfig } from "vite"

// 引入三个环境配置文件
import ViteBaseConfig from "./environment/vite.base.config"
import ViteProdConfig from "./environment/vite.prod.config"
import ViteDevConfig from "./environment/vite.dev.config"

// 策略模式做一个动态的配置
const envResolver = {
    "build":()=>{
        console.log("生产环境")
        // 解构的语法
        return ({...ViteBaseConfig,...ViteProdConfig})
    },
    "serve":()=>{
        console.log("开发环境")
        // 另一种写法
        return Object.assign({},ViteBaseConfig,ViteDevConfig)
    }
}

// 根据 参数 command 的值,使用不同的环境配置文件
export default defineConfig(({command})=>{
    console.log("command : ",command)
    // 根据不同的环境使用不同的配置文件,注意这个地方的写法,非常的奇特
    return envResolver[command]()
})

05-package.json脚本配置

配置一个 开发环境的脚本
配置一个生产环境的脚本

  "scripts": {
    "dev": "vite",
    "prod": "vite build"
  },

运行测试

运行开发环境

npm run dev
在这里插入图片描述

运行生产环境

npm run prod
在这里插入图片描述

注意,此处运行的生产环境的命令是【执行打包的】
但是,本文只是为了探索配置文件的加载,对打包的操作暂不详细描述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1192568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python基础】基于UPD协议实现简易聊天室(Socket编程)

UDP通信 1.什么是 socket2. 创建 socket3.udp 网络程序-发送、接收数据(User Datagram Protocol)udp 网络程序-发送、接收数据(客户端)udp 绑定信息udp 绑定信息---服务器端总结 4.udp 聊天器 1.什么是 socket socket(简称 套接字…

如何快速编写测试用例?

当你学会了如何设计测试用例之后,接下来便是开始用例的编写。 在设计阶段,更准确的说应该是识别测试点的过程,而编写阶段则是将测试点细化成一条条测试用例的过程,有了比较全的用例场景后,如何让别人更舒服、更方便、…

Python + UnitTest 软件测试流程总结

以测试用户登录流程为例: TestCase: TestCase 主要用来编写测试用例,这里结合 断言(assertEqual 和 assertIn) 进行判断,避免了手动书写判断。 # tools.py # 登录验证方法 def login(username, password…

Android Studio导入,删除第三方库

Android项目经常用到无私的程序员们提供的第三方类库。本篇博客就是实现第三方库的导入和删除。 一、导入第三方库 1、将需要的库下载到本地; 2、新建Moudle (1)File --- New Moudle (2)选择Android Library --- Next (3)填写Moudle名 --- Finish。一个新的Mou…

【优选算法系列】【专题七分治】第一节.75. 颜色分类和912. 排序数组

文章目录 前言一、颜色分类 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、排序数组 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写总结 前言 一、颜色分类 1.1 题目描述 描述&…

QML9、输入元素

1、输入元素(Input Element) 我们已经使用过MouseArea(鼠标区域)作为鼠标输入元素。这里我们将更多的介绍关于键盘输入的一些东西。我们开始介绍文本编辑的元素:TextInput(文本输入)和TextEdit(文本编辑)。 2、文本输入(TextInput) 文本输入允许用户输入一行文本…

Redis之缓存

文章目录 前言一、缓存使用缓存的原因 二、使用缓存实现思路提出问题 三、三大缓存问题缓存穿透缓存雪崩缓存击穿互斥锁实现逻辑过期时间实现 总结 前言 本篇文章即将探索的问题(以黑马点评为辅助讲解,大家主要体会实现逻辑) 使用redis缓存的…

Nmap-NSE

一.Nmap的脚本引擎类别 参数说明ALL允许所有的脚本Auth认证Default默认的脚本引擎,-sC:equivalent to --script default 或 --script default ,执行一些脚本的脚本扫描Discovery发现,获取目标的深度信息External扩展&#xff0c…

2023面试笔记四

1、gc导致的cpu冲高 排查是否为gc导致,看如下两点: gc频率和耗时 内存占用率 (1)gc频率和耗时有两种手段看: 第一种:根据gc日志的打印时间,可确定每次gc间隔的时间和耗时: 使用…

聚铭国产化日志合规版 → 中小企事业单位等保建设的最优解

聚铭网络最新发布聚铭综合日志分析系统国产化合规版本 ,相较于同类型同档次非国产化设备性能无衰减、功能无裁减、成本不提高,适用于信创替换以及等保日志建设等应用场景。 面对日趋复杂的外部环境,近年来,国家越来越重视关键技术…

谭浩强【C语言程序设计】第一章习题详解

目录 1,什么是程序?什么是程序设计? 2,为什么需要计算机语言?高级语言有哪些特点? 3,正确理解以下名词及其含义: (1)源程序,目标程序,可执行程序。 (2)程…

免费小程序HTTPS证书

随着互联网的快速发展,小程序已经成为人们日常生活中不可或缺的一部分。然而,在小程序的开发和使用过程中,安全问题一直是开发者们关注的重点。其中,HTTPS 证书是保障小程序安全的重要工具之一。在这方面,免费的小程序…

【机器学习】正则化到底是什么?

先说结论:机器学习中的正则化主要解决模型过拟合问题。 如果模型出现了过拟合,一般会从两个方面去改善,一方面是训练数据,比如说增加训练数据量,另一方面则是从模型角度入手,比如,降低模型复杂…

HDR 成像技术学习(四)

HDR(High Dynamic Range,高动态范围)仿佛是成像领域永恒的话题,动态范围越大,图像能清晰呈现的明暗差别也就越大。与传统的SDR(标准动态范围)相比,HDR图像能够以更高质量同时显示画面的亮部和暗部。 随这些年CMOS图像传感器工艺技术进步,以及后端数字信号处理算力的提升…

编译内核源码

本文将记录内核源码编译步骤,供有需要的人参考使用。 一、内核源码下载网址 内核源码网址:https://kernel.org/ 二、准备编译环境 这里需要注意区分x86架构和arm架构,需要不同的架构内核就准备对应的服务器即可,在服务器上安装…

arthas常用命令

arthas常用命令 IDEA插件 arthas idea退出arthasjad 反编译watch 方法执行数据观测tracemonitor https://arthas.aliyun.com/doc/ IDEA插件 arthas idea 退出arthas # quit或者exit命令,只是退出当前的连接, Attach到目标进程上的arthas还会继续运行,端口会保持开…

火力全开!腾讯云这次直接开卖5年

如果你是一名网站管理员,或者是一名创业公司的CEO,那么腾讯云这个词一定不会陌生。作为国内领先的云计算服务提供商,腾讯云一直以来都在为各行各业的用户提供着高效、稳定、安全的云计算服务。 而在今天,我们要给大家带来一个重磅…

2020年五一杯数学建模B题基于系统性风险角度的基金资产配置策略分析解题全过程文档及程序

2020年五一杯数学建模 B题 基于系统性风险角度的基金资产配置策略分析 原题再现 近年来,随着改革开放程度的不断提高,我国经济运行中的各种风险逐渐暴露并集中传导和体现于金融领域。党的“十九大”报告提出“守住不发生系统性金融风险的底线”要求&am…

官媒代运营:让大众倾听品牌的声音

在当今数字时代,媒体的影响力和多样性远远超出了以往的范畴。品牌和企业越来越依赖媒体来传播信息、建立声誉以及与大众互动。而媒体矩阵成为了现代品牌传播的关键策略,使大众能够倾听品牌的声音。媒体矩阵:多元化的传播渠道 媒体矩阵是指利…

使用双动态令牌混合器学习全局和局部动态以进行视觉识别

TransXNet: Learning Both Global and Local Dynamics with a Dual Dynamic Token Mixer for Visual Recognition 1、问题与解决2、引言3、方法3.1 双动态令牌混合器(D- Mixer)3.2 IDConv(Input-dependent Depthwise Convolution)3.3 Overlapping Spatial Reduction Attention …