位置: IT常识 - 正文

【vite·4】vite在多环境下的配置集成方案及defineConfig(非常详细)(vitem)

编辑:rootadmin
【vite·4】vite在多环境下的配置集成方案及defineConfig(非常详细)

推荐整理分享【vite·4】vite在多环境下的配置集成方案及defineConfig(非常详细)(vitem),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:virtute,vited,vitec,vite svelte,vite cli,vite svelte,vite cli,vitejte,内容如对您有帮助,希望把文章链接给更多的朋友!

vite的默认配置文件是vite.config.js,最基础的配置文件格式如下:

export default { // 配置选项};

我们也可以通过 –config 命令行选项指定一个配置文件,命令行输入: vite --config my-config.js

vite运行在node环境,为什么vite.config.js能够写成esmodule的形式? vite在读取vite.config.js时,会率先通过node解析文件语法, 如果发现你是esmodule规范会直接将你的esmodule规范进行替换变成commonjs规范

配置语法提示

我们采用vscode编译器增添vite配置时,编译器是没有任何提示的,这对我们很不友好! (下图的提示并不是vite的可选配置提示,是插件对js的通用提示)

webstorm有很好的语法补全功能,vscode没有如果使用vscode或者其他的编辑器, 想要编译器进行智能提示,需要做一些特殊处理

通过下面的两种配置,我们可以获得代码补全功能。

defineConfig

加上defineConfig,会惊奇的发现,配置项居然有代码提示了,真香!

jsdoc 注释法【vite·4】vite在多环境下的配置集成方案及defineConfig(非常详细)(vitem)

jsDoc是一个用于JavaScript的API文档生成器,官网:https://jsdoc.zcopy.site/

将配置写在viteConfig内并导出,然后再其上面写如下注释:

/** @type import("vite").UserConfig */

环境模式配置

webpack时代,基于不同的环境,开发者通常会设置不同的配置文件,如:webpack.dev.config、webpack.prod.config、webpack.base.config 等等。 vite中,基于不同环境设置不同配置,只需要导出这样一个函数:

export default defineConfig(({ command, mode, ssrBuild }) => { if (command === 'serve') { return { // dev 独有配置 } } else { // command === 'build' return { // build 独有配置 } }})在开发环境下 command 的值为 serve生产环境下为 command 的值为 build多环境配置集成的一种实现方式

同webapack配置一样,我们也可以定义多个配置文件,然后再vite.config.js中引入使用

import { defineConfig } from "vite";import viteBaseConfig from "./vite.base.config";import viteDevConfig from "./vite.dev.config";import viteProdConfig from "./vite.prod.config";export default defineConfig(({ command, mode, ssrBuild }) => { if (command === "serve") { return { // dev 独有配置 ...viteBaseConfig, ...viteProdConfig }; } else { // command === 'build' return { // build 独有配置 ...viteBaseConfig, ...viteDevConfig }; }});

vite.base.config.js代码如下,其余类似。

import { defineConfig } from "vite";export default defineConfig( {});多环境配置集成的策略模式写法

我们可以使用策略模式让代码变得更加高级

import { defineConfig } from "vite";import viteBaseConfig from "./vite.base.config";import viteDevConfig from "./vite.dev.config";import viteProdConfig from "./vite.prod.config";const envResolver = { // build: () => ({...viteBaseConfig,... viteProdConfig}) 这种方式也可以 // Object.assign中的{}是为了防止viteBaseConfig被修改。 build: () => Object.assign({}, viteBaseConfig, viteProdConfig), serve: () => Object.assign({}, viteBaseConfig, viteDevConfig),};export default defineConfig(({ command, mode, ssrBuild }) => { return envResolver[command]();});

Object.assign() Object.assign() 方法将所有可枚举属性从一个或多个源对象复制到目标对象,返回修改后的对象。 注意:该方法会修改源对象!

const target = { a: 1, b: 2 };const source = { b: 4, c: 5 };const returnedTarget = Object.assign(target, source);console.log(target);// expected output: Object { a: 1, b: 4, c: 5 }console.log(returnedTarget === target);// expected output: true多环境配置测试

我们在vite.config.js中根据不同环境写下提示信息

import { defineConfig } from "vite";import viteBaseConfig from "./vite.base.config";import viteDevConfig from "./vite.dev.config";import viteProdConfig from "./vite.prod.config";const envResolver = { build: () => { console.log("生产模式"); Object.assign({}, viteBaseConfig, viteProdConfig) }, serve: () => { console.log("开发模式"); Object.assign({}, viteBaseConfig, viteDevConfig) },};export default defineConfig(({ command, mode, ssrBuild }) => { return envResolver[command]();});

package.json中增加"build": “vite build”

"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "vite", "build": "vite build" },

命令行执行 npm run dev 命令行执行 npm run build

本文链接地址:https://www.jiuchutong.com/zhishi/283090.html 转载请保留说明!

上一篇:dm分区图解 电脑dm分区如何进行(dm分区工具图解教程)

下一篇:Linux做代理服务器实现步骤详解(代理 linux)

  • 华为app打不开怎么回事(华为手机app怎么打不开)

    华为app打不开怎么回事(华为手机app怎么打不开)

  • 腾讯vip设置几个人用(腾讯视频会员可以几个人用怎么设置)

    腾讯vip设置几个人用(腾讯视频会员可以几个人用怎么设置)

  • 分辨率h265是什么意思(h265分辨率码率对应表)

    分辨率h265是什么意思(h265分辨率码率对应表)

  • odg文件用什么打开(odd文件怎么使用)

    odg文件用什么打开(odd文件怎么使用)

  • 抖音刷到的视频是随机的吗(抖音刷到的视频找不到了怎么办)

    抖音刷到的视频是随机的吗(抖音刷到的视频找不到了怎么办)

  • 在表格里输入身份证号码为什么总会变都是0(在表格里输入身份证号码为什么不显示)

    在表格里输入身份证号码为什么总会变都是0(在表格里输入身份证号码为什么不显示)

  • 液晶电视能当监控显示器用吗(液晶电视当监控显示器用怎么设置画面)

    液晶电视能当监控显示器用吗(液晶电视当监控显示器用怎么设置画面)

  • 变频器显示err04怎么处理(hddq变频器inverter说明书)

    变频器显示err04怎么处理(hddq变频器inverter说明书)

  • qq匿名悄悄话没了(qq有匿名悄悄话)

    qq匿名悄悄话没了(qq有匿名悄悄话)

  • 登录qq空间对方知道吗(登录qq空间对方能看见吗)

    登录qq空间对方知道吗(登录qq空间对方能看见吗)

  • 苹果手机拉黑电话号码对方提示什么(苹果手机拉黑电话号码还能收到电话)

    苹果手机拉黑电话号码对方提示什么(苹果手机拉黑电话号码还能收到电话)

  • 苹果为什么下载不了迅雷(苹果为什么下载软件不在桌面上显示)

    苹果为什么下载不了迅雷(苹果为什么下载软件不在桌面上显示)

  • b站怎么靠uid查人(b站怎么用uid查人)

    b站怎么靠uid查人(b站怎么用uid查人)

  • 京东我的预约怎么取消(京东我的预约怎么抢比较快)

    京东我的预约怎么取消(京东我的预约怎么抢比较快)

  • 快手账号注销后是啥样子(快手账号注销后还可以重新找回吗)

    快手账号注销后是啥样子(快手账号注销后还可以重新找回吗)

  • pr如何给视频加特效(pr如何给视频加水印)

    pr如何给视频加特效(pr如何给视频加水印)

  • 手机录音在哪个文件里(手机录音在哪个软件里找)

    手机录音在哪个文件里(手机录音在哪个软件里找)

  • 虎牙粉钻有什么权限嘛(虎牙粉钻有什么用)

    虎牙粉钻有什么权限嘛(虎牙粉钻有什么用)

  • 荣耀20pro充电需要多少时间(荣耀20pro充电速度有点慢)

    荣耀20pro充电需要多少时间(荣耀20pro充电速度有点慢)

  • smartart中等效果在哪(smartart设置为中等效果)

    smartart中等效果在哪(smartart设置为中等效果)

  • 离线请留言怎么设置(离线请留言怎么能看出隐身)

    离线请留言怎么设置(离线请留言怎么能看出隐身)

  • 华为手机gps信号弱无法导航怎么回事(华为手机gps信号弱导航不了)

    华为手机gps信号弱无法导航怎么回事(华为手机gps信号弱导航不了)

  • 怎么连接手柄(steam怎么连接手柄)

    怎么连接手柄(steam怎么连接手柄)

  • 电脑管家怎么重装系统(电脑管家怎么重新安装)

    电脑管家怎么重装系统(电脑管家怎么重新安装)

  • 修改系统散热方式(修改系统散热方案)

    修改系统散热方式(修改系统散热方案)

  • 净利润跟税后利润是二个概念吗
  • 内含报酬率指
  • 减免城建税税款会计分录
  • 减半征收附加税退回的分录
  • 企业应交所得税怎么算
  • 车辆过户需要交费吗
  • 增值税专用发票可以开电子发票吗
  • 建筑工程的适用范围
  • 企业亏损需要缴税吗
  • 刷银行卡消费安全吗
  • 本期准予扣除税额是什么
  • 建筑业分包抵扣
  • 土地闲置费能否扣除
  • 借款利息税前扣除比例
  • 购买办公用品未取得发票怎么办
  • 经营性现金净流量是什么意思
  • 文化事业税收优惠政策
  • 库存商品出口退税的账务处理?
  • 全免增值税企业所得税吗
  • 预收款项确认主营业务收入谨慎性
  • win10右键没有打印
  • linux dns配置服务器
  • 电脑找不到休眠设置了
  • 主营业务收入科目应按什么进行明细核算
  • 免税收入要减去吗
  • HTTP 400 错误是什么原因
  • 事业单位预付款会计分录
  • 微软win11预览版
  • win10重装系统后网卡没了
  • css搜索框代码怎么写
  • 长期待摊费用是非流动资产吗
  • 史密斯理工学院
  • h5的开发
  • 计提投资者利润
  • vue3 hooks实现
  • 实战到底究竟是什么意思啊
  • 人工智能机器人保姆什么时候实现
  • 充值款如何领取红包
  • phpcms怎么用
  • node.js最新版本
  • 征收率有几种
  • 计提本月工资社保怎么扣
  • 公司欠款 法人
  • 所得税汇算清缴需要调增的项目
  • mysql常见报错
  • 堤围防护费如何计算
  • 发票已经认证后怎么撤销
  • 盘亏的设备要进仓库吗
  • 递延所得税资产账务处理
  • 资源税的征税对象都是原矿和选矿
  • 营业外收入可以冲减管理费用吗
  • 公司代缴社保如何查询
  • 委托代理进口账务处理
  • 参加新冠疫情防控工作感悟 医务人员
  • 销售商品发生的运输费计入什么科目
  • 收到预付款项发票怎么开
  • 私立医院怎么做不被骗的事情
  • 坏账准备确认坏账
  • 公司租的房子电费发票怎么开
  • 设备上的配件计入什么费用
  • 为什么总让升级浏览器
  • mac系统命名规律
  • fdisk 分区表
  • 用U盘安装win11
  • ubuntu tc
  • ubuntu命令行查找文件
  • win7双击有声音
  • jquery对动态生成的进行操作
  • jquery跟随鼠标移动
  • mongoose怎么用
  • 安卓开发者有多少
  • linux的syslog配置
  • unity网络模块
  • nodejs怎么连接mysql
  • ubuntu修改默认桌面环境
  • javascript如何学
  • python class
  • js闭包实现
  • 国家税务总局中山市税务局港口税务分局
  • 个体户刻公章需要备案吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设