位置: 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)

  • 悦刻三代怎么连接手机(悦刻三代怎么连接手机华为)

    悦刻三代怎么连接手机(悦刻三代怎么连接手机华为)

  • 游戏超频是什么意思(游戏超频怎么办)

    游戏超频是什么意思(游戏超频怎么办)

  • 怎样更改微信号(怎样更改微信号密码)

    怎样更改微信号(怎样更改微信号密码)

  • 哪个视图是默认的视图方式(页面视图是默认视图)

    哪个视图是默认的视图方式(页面视图是默认视图)

  • 手机快速充电80%的方法(手机快速充电10秒)

    手机快速充电80%的方法(手机快速充电10秒)

  • microsd卡是内存卡吗(microsd卡是啥)

    microsd卡是内存卡吗(microsd卡是啥)

  • 智学网好友伴学对方知道吗(智学网好友伴学怎么消失了)

    智学网好友伴学对方知道吗(智学网好友伴学怎么消失了)

  • qq号被冻结怎么登录QQ安全中心(qq号被冻结怎么回事)

    qq号被冻结怎么登录QQ安全中心(qq号被冻结怎么回事)

  • 爱奇艺会员不能看奇异果(爱奇艺会员不能跳过广告是什么回事)

    爱奇艺会员不能看奇异果(爱奇艺会员不能跳过广告是什么回事)

  • qq群投票怎么重新投(qq群投票如何再次发送到群里)

    qq群投票怎么重新投(qq群投票如何再次发送到群里)

  • 怎么联系微信扫码收款人(怎么联系微信扫码付款方)

    怎么联系微信扫码收款人(怎么联系微信扫码付款方)

  • b站缓存的音频在手机哪里(B站缓存的音频在哪个文件夹)

    b站缓存的音频在手机哪里(B站缓存的音频在哪个文件夹)

  • 怎样存别人手机号码(怎样存别人手机号码,能成为电子版,一查名字就出来了)

    怎样存别人手机号码(怎样存别人手机号码,能成为电子版,一查名字就出来了)

  • 苹果13.2.3更新了什么(ios13.2更新)

    苹果13.2.3更新了什么(ios13.2更新)

  • 抖音内容删了点赞量还在吗(抖音内容删了点赞还在吗)

    抖音内容删了点赞量还在吗(抖音内容删了点赞还在吗)

  • 发朋友圈的步骤(微信发朋友圈的步骤)

    发朋友圈的步骤(微信发朋友圈的步骤)

  • vivo手机掉水里怎么办(vivo手机掉水里了正确处理方法)

    vivo手机掉水里怎么办(vivo手机掉水里了正确处理方法)

  • 微信被别人绑定了手机号码怎么办(微信被别人绑定了身份证怎么办)

    微信被别人绑定了手机号码怎么办(微信被别人绑定了身份证怎么办)

  • 如何解决微信发图慢(如何解决微信发视频压缩问题)

    如何解决微信发图慢(如何解决微信发视频压缩问题)

  • xp开机音乐怎么设置

    xp开机音乐怎么设置

  • 微信静音了怎么调(微信静音了怎么办解除)

    微信静音了怎么调(微信静音了怎么办解除)

  • 手机怎么关掉蓝光(手机怎么关掉蓝牙耳机拨号功能)

    手机怎么关掉蓝光(手机怎么关掉蓝牙耳机拨号功能)

  • 抖音对方把我拉黑了还能刷到我吗(抖音对方把我拉黑了我看他主页他访客有我记录吗)

    抖音对方把我拉黑了还能刷到我吗(抖音对方把我拉黑了我看他主页他访客有我记录吗)

  • yoloV5-face学习笔记(yolo v5训练)

    yoloV5-face学习笔记(yolo v5训练)

  • 一般纳税人预缴税款几个点
  • 合同印花税怎么贴
  • 公司卖出货物没有入库记录如何做账?
  • 下列各项中免征增值税的有
  • 留存收益未分配利润占比
  • 应付账款的核算会计分录
  • 控股合并的会计准则
  • 联营返点收入账务处理
  • 收到去年的成本发票
  • 未确认收入可以开发票吗
  • 可供出售金融资产包括哪些内容
  • 不动产在建工程使用的外购货物
  • 股东取得利息收入如何纳税
  • 合并报表中长期股权投资包括
  • 农村承包土地能卖土吗
  • 房屋装修费用计算器
  • 纳税申报方式怎么修改
  • 应收款的周转天数
  • 隔月的发票能作废吗
  • 未分配利润清算如何处理
  • 房屋租赁公司和公寓管理公司区别是什么
  • 上市公司股票下跌可以减持吗
  • 华为鸿蒙系统网速慢怎么解决
  • 滴滴发票开公司名称可以抵扣进项吗
  • 珠宝加工税率是多少
  • 费用确认条件新准则
  • php如何实现伪静态
  • 批量删除 超链接
  • 最新专业版win10
  • 公司客户招待费用标准
  • 生产企业外销收入账务处理
  • 奥尔梅克
  • 购买固定资产后如何处理
  • 手把手教你如何从一无所有到财务自由
  • pytorch1.5
  • 基于什么意思
  • 律师费怎么要回来
  • 取得了水电费发票怎么做
  • 长期待摊费用账务处理
  • 递延所得税资产和递延所得税负债
  • 二手车经销管理办法
  • mysql中数据类型主要分为哪四种
  • 个人所得税的计算标准
  • 盈余公积提取是什么意思
  • 应收账款如何做平
  • 房租费用计入什么现金流量
  • 银行存款的收付应严格执行()的规定
  • 累计折旧的计提会计分录
  • 机票 进项抵扣
  • 备抵法核算坏账损失
  • 进口固定资产的汇率怎么算
  • 科目汇总表里的应交税费
  • 出口货物没有进项发票用什么平台申报
  • 可持续增长率和内部增长率的区别
  • 会计科目的设置原则包括( )
  • MySQL 与 Elasticsearch 数据不对称问题解决办法
  • win8.1关机没反应
  • win8系统怎么关机
  • 苹果电脑注释
  • 戴尔dell服务器维修
  • win10周年更新版是什么意思
  • win8 u盘启动
  • lsass exe
  • win7系统无法开机解决方法
  • win10系统onenote不能用
  • iis安装步骤 windows server 2008
  • jquery prototype
  • opengl教程48讲
  • 自动化测试读写题答案
  • javascript:void(0)的作用示例介绍
  • vue.js打包部署
  • 实用的批处理
  • jquery设置图片路径
  • jquery使用教程
  • jquery弹出框样式大全
  • python中import导入模块的方法
  • 福建税务局网上办税
  • 水资源税征收标准2022
  • 如何给局长送点礼品
  • 设区市是哪里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设