位置: IT常识 - 正文

react中一些vite常见配置(reactvate)

编辑:rootadmin
react中一些vite常见配置

推荐整理分享react中一些vite常见配置(reactvate),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react veu,react eventemitter,react either,react veu,react.strictmode,react eventemitter,react.strictmode,react veu,内容如对您有帮助,希望把文章链接给更多的朋友!

使用vite,首先要在项目根目录创建vite.config.js的文件,如果使用ts的话,也可以是.ts文件。 这里其实重点想要说的是,vite属于新兴的工具,所以对于他的配置项,我们必然是很陌生的,但是官方很贴心的,给我们提供了方案——一个可以给出配置提示的方法:

import { defineConfig } from 'vite'import reactRefresh from '@vitejs/plugin-react-refresh'import path from 'path';export default defineConfig({ plugins: [reactRefresh()],})

如上,只要引用defineConfig,包裹vite的config,你在键入options的时候,就可以看到提示啦。 还有需要注意的一点,vite内置less,和sass,但是如果使用默认配置,那么在给less,和sass文件起名字的时候,文件名后缀要使用.module.less,这样vite才能正确识别

项目中实用、常用配置文件别名配置resolve.aliasimport { defineConfig } from 'vite'import reactRefresh from '@vitejs/plugin-react-refresh'import path from 'path';export default defineConfig({ plugins: [reactRefresh()], resolve: { alias: [ { find: "src", replacement: path.resolve(__dirname,'src') }, ] },})less设置全局变量css.preprocessorOptionsimport { defineConfig } from 'vite'import reactRefresh from '@vitejs/plugin-react-refresh'import path from 'path';export default defineConfig({ plugins: [reactRefresh()], css: { preprocessorOptions: { less: { additionalData: `@import "${path.resolve(__dirname, 'src/theme.module.less')}";`, javascriptEnabled: true, } }, },})打包

打包这里问题比较多,首先要确定自己的项目,是什么场景。比如:是一个完成的应用,需要将html打包进项目的,可以使用默认配置。如果自己的项目是SDK,或者是一个react组件。那么就需要使用另外一种库模式来打包。还有node环境的npm包,比如脚手架之类需要执行某些node命令行的配置,都会有所不同

常规配置-rollupOptions

一般的打包配置,可以使用rollupOptions,这部分具体有什么配置项,有哪些参数,我这里偷个懒,大家可以去rollup官方文档去查(虽然我知道这样比较烦人,但是这部分比较容易查,所以就不写啦,我重点写一点,不太容易查到的配置) 这里只分享一个我遇到的,更改css构建产物文件名的配置

import { defineConfig } from 'vite'import reactRefresh from '@vitejs/plugin-react-refresh'import path from 'path';export default defineConfig({ plugins: [reactRefresh()], build: { rollupOptions: { output:{ entryFileNames: `[name].${timestamp}.js`, chunkFileNames: `[name].${timestamp}.js`, // css文件名 assetFileNames: `[name].${timestamp}.[ext]` // 比如你想构建出来的css为dist/index.css,那么你可以这样 // assetFileNames: `index.[ext]` }} },})库模式

这个模式适用于,打包一个不含html文件的场景

import { defineConfig } from 'vite'import reactRefresh from '@vitejs/plugin-react-refresh'import path from 'path';export default defineConfig({ plugins: [reactRefresh()], build: { lib: { // 入口文件 entry: path.resolve(__dirname, 'src/index.tsx'), // umd、iife的格式vite要求必须要有name作为导出的全局变量 name: "SpecialEffect", // 导出格式,默认为["iife","umd"] formats: ['iife'], // js打包名称,当然这部分官方文档更加详细 fileName: () => "index.js" },// umd格式下,支持将不需要打包的第三方库,排除在外,并指定全部环境// 提供的全局变量代替,比如以下的例子,不将react打包,由全局React// 变量提供react库rollupOptions: { external: ['react'], output: { globals: { react: 'React' } } } },})本地开发服务器的配置import { defineConfig } from 'vite'import reactRefresh from '@vitejs/plugin-react-refresh'import path from 'path';export default defineConfig({ plugins: [reactRefresh()], server: { // 端口 port: 3000, // 是否开启https服务 https: true, // 代理 proxy: { '/project/delete': { target: 'https://www.bdsc.com', changeOrigin: true, rewrite: (path) => path.replace(/^\/project\/delete/, '') }, '/project/update': { target: 'https://www.bdsc.com', changeOrigin: true, rewrite: (path) => path.replace(/^\/project\/update/, '') }, } },})proxy{proxy:{'api':{target: 'https://www.bdsc.com', changeOrigin: true, rewrite: (path) => path.replace(/^\api/, '')}}}react中一些vite常见配置(reactvate)

以上配置可以解决proxy百分之九十的问题,但是这个含义却很少有人讲的清楚。 首先 "api"这个是一个标识符,虽然很多接口会提供给你类似这样的'www.bdsc.com/api/materia…

我还是拿www.bdsc.com/api/materia…

首先我们需要向本地开发服务发起请求,然后本地开发服务器请求地址www.bdsc.com/api/materia…

发起请求的方式是,我们通过proxy定义一个标识符,例如aaa,然后在本地开发服务器的地址拼接上标识符aaa。也就是localhost:3000/aaa,这样就可以对本地开发服务器发起请求了。当你发起这个请求,本地开发服务器要做什么呢?他会根据配置中的target字段的地址,也就是www.bdsc.com,拼接上aaa标识符,然后再拼接上/api/materia… rewrite字段中,将aaa这个标识符,替换为空的字符串。那么这样得到的最终地址就是www.bdsc.com/api/materia…

当然这个标识符你不想自定义,想要使用接口中的那个api字段行不行呢,当然也可以,最后不需要rewrite就好了

上面说了一大堆。字有点多,可能也少有人耐心看。下面我就从头到位的说一下具体做法,代码:

import axios from 'axios';import env from './env';// env 环境变量,这里必须要判断当前的环境。本地开发,还是在生产、日常、预发等// 是否是本地环境const isLocal = env === "LOCAL"// 本地开发baseURL使用标识符,浏览器会自动添加域名,也就是本地开发服务器的域名const baseURL = isLocal ? "aaa" : "https://www.bdsc.com"axios({baseURL,url:"api/material",method:"GET",params:{}}).then(res => {// 发起请求})

如果是本地环境,那么上面实际请求的地址就是类似http://localhost:3000/aaa/api/material这种地址

下面proxy的配置

{proxy:{'aaa':{target: 'https://www.bdsc.com', changeOrigin: true, rewrite: (path) => path.replace(/^\aaa/, '')}}}

当本地服务器收到http://localhost:3000/aaa/api/material的请求,便会将localhost:3000替换为target:https://www.bdsc.com的到https://www.bdsc.com/aaa/api/material, 然后再根据rewrite的配置,将aaa替换为空字符串。得到www.bdsc.com/api/materia…

以上是关于vite的配置的一点总结

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

上一篇:基于Java+SpringBoot+Vue+uniapp微信小程序零食商城系统设计和实现

下一篇:Vue中的methods方法使用技巧,三分钟迅速读懂(vue中methods的作用)

  • vivo手机怎么设置地震提示(vivo手机怎么设置桌面时间日期)

    vivo手机怎么设置地震提示(vivo手机怎么设置桌面时间日期)

  • 闲鱼退款必须卖家同意才可以吗(闲鱼退款必须卖家不处理)

    闲鱼退款必须卖家同意才可以吗(闲鱼退款必须卖家不处理)

  • 苹果已删除照片在哪(苹果已删除照片在哪里找到)

    苹果已删除照片在哪(苹果已删除照片在哪里找到)

  • 怎么看群里退出的人(怎么看群里退出的群聊)

    怎么看群里退出的人(怎么看群里退出的群聊)

  • 手机充电发热会爆炸吗(手机充电发热会坏吗)

    手机充电发热会爆炸吗(手机充电发热会坏吗)

  • 荣耀30支持无线快充吗(荣耀30支持无线传声吗)

    荣耀30支持无线快充吗(荣耀30支持无线传声吗)

  • 苹果11pro多长(ipone11pro多长)

    苹果11pro多长(ipone11pro多长)

  • 笔记本亮度调节没反应(笔记本亮度调节没了)

    笔记本亮度调节没反应(笔记本亮度调节没了)

  • 手机爱奇艺vip会员怎么在电视上用(手机爱奇艺vip会员 怎么在电视上用五毛钱)

    手机爱奇艺vip会员怎么在电视上用(手机爱奇艺vip会员 怎么在电视上用五毛钱)

  • 终端与ap的连接过程是什么(终端与AP的连接过程是什么)

    终端与ap的连接过程是什么(终端与AP的连接过程是什么)

  • 索尼8000g和8500g区别(索尼8000g和9500g的区别)

    索尼8000g和8500g区别(索尼8000g和9500g的区别)

  • 苹果手机返厂修的利弊(苹果手机返厂修好了寄回来要几天)

    苹果手机返厂修的利弊(苹果手机返厂修好了寄回来要几天)

  • 手机最大内存是多少GB(手机最大内存是什么牌子)

    手机最大内存是多少GB(手机最大内存是什么牌子)

  • 手机突然卡的很是什么问题(手机突然卡的很怎么办)

    手机突然卡的很是什么问题(手机突然卡的很怎么办)

  • word表格删除指定内容(word删除表格中内容)

    word表格删除指定内容(word删除表格中内容)

  • iosqq金豆怎么充值(qq金豆充值记录哪里能看到)

    iosqq金豆怎么充值(qq金豆充值记录哪里能看到)

  • 华为nova6pro上市时间(华为nova6pro发售价)

    华为nova6pro上市时间(华为nova6pro发售价)

  • 怎么拉黑快手关注我的人(快手怎么拉黑关注你的人,不让他看你的作品)

    怎么拉黑快手关注我的人(快手怎么拉黑关注你的人,不让他看你的作品)

  • 华为p30pro怎么使用外接声卡可以录歌(华为p30pro手机如何)

    华为p30pro怎么使用外接声卡可以录歌(华为p30pro手机如何)

  • flatl10华为什么型号(flaal10华为什么型号手机)

    flatl10华为什么型号(flaal10华为什么型号手机)

  • 苹果手机面对面快传怎么安装(苹果手机面对面快传)

    苹果手机面对面快传怎么安装(苹果手机面对面快传)

  • 闲鱼怎么加入鱼塘(闲鱼怎么加入鱼小铺)

    闲鱼怎么加入鱼塘(闲鱼怎么加入鱼小铺)

  • vue3动态路由刷新后空白或者404(vue2动态路由)

    vue3动态路由刷新后空白或者404(vue2动态路由)

  • 达拉斯分水岭, 科罗拉多州西南部 (© Ronda Kimbrow/Shutterstock)(达拉斯位置)

    达拉斯分水岭, 科罗拉多州西南部 (© Ronda Kimbrow/Shutterstock)(达拉斯位置)

  • 【GoF 23】23种设计模式与OOP七大原则概述

    【GoF 23】23种设计模式与OOP七大原则概述

  • 房产税一律按房产价值计征
  • 差额纳税的税率
  • 小规模减免增值税
  • 中国注册税务师协会法律法规库
  • 装修公司开劳务费发票可以有材料进项票吗
  • 减免所得税优惠明细表怎么填
  • 一季度计提的所得税分录
  • 发票回退是什么情况
  • 发票多开了一张怎么处理?
  • 劳务派遣增值税怎么算
  • 房地产 结转
  • 借方增加的科目记忆口诀
  • 企业物流运输
  • 全年亏损,但季度预交企业所得税,汇算时怎么调平
  • 销售折让的税收分类编码
  • 新个税劳务报酬怎么算
  • 分公司的发票可以由总公司开吗
  • 网上申领发票怎么清卡
  • 劳务服务公司可以承包大型工程吗?
  • 不动产租金收入缴纳增值税
  • 固定资产残值清零怎么处理
  • 解决的英文
  • wifi不让输入密码怎么办
  • kb5001028补丁
  • gh树形数据是什么意思
  • 重复确认收入是什么意思
  • 企业租赁汽车交什么税
  • macOS 11 Big Sur beta 4值得升级吗?macOS 11 Big Sur beta 4更新详解
  • 代金券消费怎么做分录
  • 房地产项目公司是什么意思
  • 商业折扣影响税费吗
  • uniapp vuecli
  • 违约金要计入应纳税所得额吗
  • 会计账务处理年限规定
  • 史密斯理工学院
  • php如何调用类
  • php获取当前访问目录
  • php二维数组的遍历
  • ChatGPT 被大面积封号,到底发生什么了?
  • 增值税发票复印件可以入账吗与原件一致
  • 管理成本分摊比例是多少
  • mongodb自增主键
  • 应计入损益的利得有什么
  • 固定资产有内容限制吗
  • 企业所得税的征税对象和纳税人分别负有的纳税义务
  • 股东投资是否有资金实际收支活动?
  • 会计账簿登记错误
  • 特许权使用费计入无形资产吗
  • 职工食堂的费用可以在差额里扣除吗
  • 建筑施工企业涉诉案件多的原因
  • 车船税开在备注栏相关文件
  • 借用别的公司资质的协议范本
  • 应收账款周转率计算公式
  • mysql5.7.17下载
  • SQL Server的通用分页存储过程 未使用游标,速度更快!
  • sql语句版本
  • mysql5.7.35安装配置教程
  • Win10 Mobile 10563预览版微软官方模拟器下载
  • windows2008 iis7如何取消目录执行权限的详细图文介绍
  • lsass exe
  • 注册表.bak
  • win8系统启动项在哪
  • 抢先体验的游戏可以退款吗
  • linux系统磁盘管理的主要内容
  • Linux进入图形界面卡顿
  • ngwatch.exe
  • win7win8双系统怎么装
  • Win10锁屏壁纸怎么换
  • 同步数据和异步数据的区别
  • jQuery+AJAX实现遮罩层登录验证界面(附源码)
  • Node.js中的核心模块包括哪些内容?
  • 了不起的女孩
  • 如何进行arp病毒防范
  • vue stylus
  • android内存使用情况
  • Linux 中的各项 CPU 利用率是这样算出来的
  • 解读高考作文
  • android判断应用是否在前台
  • python快速排序最简单写法
  • 河北电子税务局怎么使用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设