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

目标描述

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

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
在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法系列】【专题五位运算】第二节.371. 两整数之和and137. 只出现一次的数字 II

文章目录 前言一、两整数之和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、只出现一次的数字 II 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写总结 前言 一、两整数之和 …

采集Prestashop独立站采集Prestashop独立站

import java.net.URL 这一行导入了Java.net包中的URL类,这个类在处理URL链接时非常有用。 import org.jsoup.Jsoup 这一行导入了Jsoup库,它是一个强大的HTML和XML文档解析库,我们可以使用它来解析网页内容。 import org.jsoup.nodes.Docume…

显卡服务器租用价格受哪些因素影响

显卡服务器也叫做GPU服务器,是一种有高性能显卡的服务器系统,显卡服务器能在大数据处理、科学计算等领域有很好的性能表现。今天小编就给大家讲一讲显卡服务器租用价格受哪些因素影响呢? 1.显卡类型和数量:一般说来中高端显卡的租…

pytorch搭建squeezenet网络的整套工程(升级版)

上一篇当中,使用pytorch搭建了一个squeezenet,效果还行。但是偶然间发现了一个稍微改动的版本,拿来测试一下发现效果会更好,大概网络结构还是没有变,还是如下的第二个版本: 具体看网络结构代码&#xff1a…

编译内核源码

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

Jupyter Notebook快速上手

Jupyter Notebook快速上手 文章目录 Jupyter Notebook快速上手1 运行Jupyter Notebook1.1 通过图形化界面打开1.2 通过命令行打开1.3 在指定项目目录下打开 2 Jupyter Notebook运行后无法自动打开网页3 Jupyter Notebook运行代码没反应4 退出4.1 终端退出4.2 命令行退出 此教程…

Linux安装git和maven——拉取代码 --> mvn打包成jar包 --->运行jar包

前言 我们知道最后的代码都是要运行在Linux系统中的,所以就需要在Linux中安装git,从而能够拉取代码,安装maven,从而能够进行项目的打包。 本篇博客以centos为例,介绍如何安装git,安装maven3.8&#xff0c…

【编程实践】黑框框里的打字小游戏,但是汇编语言

开始: 在学习王爽的《汇编语言》的过程中,我就真切地体会到编程实践对于理解的帮助。起初我没有安装书中的实验环境,看到100页左右就开始感觉无趣、吃力,看了后面忘前面,差点就要放弃这本书的学习。好在我后来还是装好…

React 递归手写流程图展示树形数据

需求 根据树的数据结构画出流程图展示,支持新增前一级、后一级、同级以及删除功能(便于标记节点,把节点数据当作label展示出来了,实际业务中跟据情况处理) 文件结构 初始数据 [{"ticketTemplateCode": &…

数据结构:Map和Set(1)

搜索树 概念 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树 这棵树的中序遍历结果是有序的 接下来我们来模拟一棵二叉搜索树&#xff0c…

【Java】本地开发环境正常、测试或生产环境获取的文件路径不对的问题

引 Java 中经常获取本地文件或者resource下的文件,要获取文件,首先要获得本地路径。 Java 本身或一些开源工具包都提供了很多获取路径的方法。但使用时经常遇到本地开发环境正常、测试或生产环境获取的文件路径不对的问题。 本文将列出几种常见的获取…

盘点那些开发中经常用到的git命令

入职第一天 配置邮箱账号 git config —global user.email "XXXX" git config —global user.name "XXXX" 生成公钥 ssh-keygen -t rsa -C "你的邮箱"生成的文件默认在c盘:/用户/当前用户/.ssh文件夹下,也可以指定文件 打开git网页&…

【正点原子STM32连载】 第四十九章 SD卡实验 摘自【正点原子】APM32F407最小系统板使用指南

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html## 第四…

对Mysql和应用微服务做TPS压力测试

1.对Mysql 使用工具:mysqlslap工具 使用命令: mysqlslap -uroot pGG8697000!#--auto generate sql -auto generate sql-load typemixed-concurrency100,200 - number of queries1000-iterations10 - number-int-cols7 - number-charcols13auto genera…

105.am40刷机(linux)折腾记1-前期的准备工作1

前段时间在某鱼上逛的时候,发现一款3399的盒子只要150大洋,内心就开始澎拜,一激动就下手了3台,花了450大洋(现在想想,心都碎了一地)。 然后自己又来来回回折腾了几天,目前能跑上fire…

NodeJs - 集合对象序列化问题

NodeJs - 集合对象序列化问题 一. 集合对象的序列化问题1.1 Map 和 Object 的区别1.2 Map 的相关转换Map 和 Array 互转Map 和 Object 互转 1.3 Set 的相关转换Set 和 Array 互转 一. 集合对象的序列化问题 案例如下:我们创建一个Map和一个Set集合,并用…

6、规划绩效域

1、变更 (1)变更有哪几种原因(类型)? 纠正措施(比如进度落后了,我们会有赶工和快速跟进的措施) 缺陷补救 预防措施 更新措施 2、变更的目的和变更控制流程的意义 考点1&#…

PSP - 蛋白质复合物结构预测 Template Pair 特征 Mask 可视化

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134333419 在蛋白质复合物结构预测中,在 TemplatePairEmbedderMultimer 层中 ,构建 Template Pair 特征的源码&#xff0c…

字符串取出多余空格的三种方法

151.翻转字符串里的单词 力扣题目链接(opens new window) 这个题的解题思路如下: 移除多余空格将整个字符串反转将每个单词反转 这个题的难点是去除多余的空格,下面我将详细讲解一下去除多余空格的几种方法。 第一种方法是逐个字符的去遍历&#xff…

CentOS 7 双网卡绑定热备 —— 筑梦之路

为什么需要? 1. 增强网络的可靠性 2. 保障服务的可持续性 3. 降低网卡故障带来的不良影响 有哪些模式? 模式0:轮询策略(round robin),mode0,优点:流量提高一倍缺点:需要接…