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

  • 国家中小学网络云平台电视怎么看(国家中小学网络云平台下载app)

    国家中小学网络云平台电视怎么看(国家中小学网络云平台下载app)

  • 小度智能音箱怎么联网(小度智能音箱怎么连接手机)

    小度智能音箱怎么联网(小度智能音箱怎么连接手机)

  • oppo账号密码在哪里查(oppo账号密码在哪里设置密码)

    oppo账号密码在哪里查(oppo账号密码在哪里设置密码)

  • 抖音软件是谁发明的(抖音软件是谁发明出来的)

    抖音软件是谁发明的(抖音软件是谁发明出来的)

  • 充电不显示双引擎(充电不显示双引闪电)

    充电不显示双引擎(充电不显示双引闪电)

  • iphone屏幕关闭时间是0(iphone屏幕关闭时间很短)

    iphone屏幕关闭时间是0(iphone屏幕关闭时间很短)

  • 华为平板微信打不开小程序(华为平板微信打不开链接)

    华为平板微信打不开小程序(华为平板微信打不开链接)

  • iphone国行和其他版本的区别(苹果国行与其他的区别)

    iphone国行和其他版本的区别(苹果国行与其他的区别)

  • 支付宝地区怎么修改(支付宝地区怎么隐藏)

    支付宝地区怎么修改(支付宝地区怎么隐藏)

  • 华为trttl10是什么型号(华为trttl10a)

    华为trttl10是什么型号(华为trttl10a)

  • 鼠标可分为机械式鼠标和光电式鼠标对还是错(鼠标可分为机械鼠标和光电式鼠标对吗)

    鼠标可分为机械式鼠标和光电式鼠标对还是错(鼠标可分为机械鼠标和光电式鼠标对吗)

  • 苹果充电接口检测到液体(苹果充电接口检测到有液体用吹风机)

    苹果充电接口检测到液体(苹果充电接口检测到有液体用吹风机)

  • 公众号排版技巧(微信公众号的排版是如何做的)

    公众号排版技巧(微信公众号的排版是如何做的)

  • 相机clog什么意思(相机cl模式是啥意思)

    相机clog什么意思(相机cl模式是啥意思)

  • 荣耀v30是什么系统(华为荣耀v30是华为手机吗)

    荣耀v30是什么系统(华为荣耀v30是华为手机吗)

  • 手机无法连接到移动网络怎么回事(手机无法连接到通话网络怎么办)

    手机无法连接到移动网络怎么回事(手机无法连接到通话网络怎么办)

  • 苹果a2104是什么型号(苹果型号a2104是国行吗)

    苹果a2104是什么型号(苹果型号a2104是国行吗)

  • 毒app不能用花呗怎么回事(毒可以用花呗分期吗)

    毒app不能用花呗怎么回事(毒可以用花呗分期吗)

  • 手机如何邀请好友加入qq群(手机如何邀请朋友进群)

    手机如何邀请好友加入qq群(手机如何邀请朋友进群)

  • iPhone11pro有美颜功能吗(iphone11pro拍照自带美颜)

    iPhone11pro有美颜功能吗(iphone11pro拍照自带美颜)

  • win10怎么开运行(win10怎么开启运行)

    win10怎么开运行(win10怎么开启运行)

  • 申请微信公众号收费吗(申请微信公众号要多久才能通过)

    申请微信公众号收费吗(申请微信公众号要多久才能通过)

  • 发快手闪退怎么回事(快手怎么会闪退)

    发快手闪退怎么回事(快手怎么会闪退)

  • 对方正在输入说明什么(对方正在输入可能是在给别人发消息吗)

    对方正在输入说明什么(对方正在输入可能是在给别人发消息吗)

  • 全民k歌把对方拉黑了还能看见我吗(全民k歌把对方设置成隐身访问,对方还能收到我的私信吗)

    全民k歌把对方拉黑了还能看见我吗(全民k歌把对方设置成隐身访问,对方还能收到我的私信吗)

  • win7安装卡在启动服务(win7安装卡在启动界面)

    win7安装卡在启动服务(win7安装卡在启动界面)

  • 智慧视觉怎么关闭(智慧视觉怎么关闭不了)

    智慧视觉怎么关闭(智慧视觉怎么关闭不了)

  • Wscntfy.exe是什么进程?如何判断Wscntfy.exe是不是病毒?(wmiprvse.exe是什么程序)

    Wscntfy.exe是什么进程?如何判断Wscntfy.exe是不是病毒?(wmiprvse.exe是什么程序)

  • Apifox:详细使用教程,带你轻松拿捏(api使用方法)

    Apifox:详细使用教程,带你轻松拿捏(api使用方法)

  • 电子税务局能查到个税申报信息吗
  • 纳税人办理退税流程
  • 进口货物复合计税的应税消费品包括
  • 预付款可以抵扣进度款吗
  • 五金配件领用管理流程
  • 企业的两金是哪两金
  • 闲置设备折旧企业所得税税前扣除
  • 金融企业往来收入科目属于什么科
  • 外购货物对外捐赠企业所得税
  • 由于汇率引起汇兑损益计入哪个科目?
  • 所得税预提多了怎么处理
  • 为别人开发票先收的税金怎么入帐?
  • 取得运输部门开具的增值税专用发票
  • 科技公司出售市场价格
  • 朋友挂靠公司社保
  • 地税税款未扣怎么处理
  • 抵扣进项税额转出分录
  • 房地产企业土地增值税清算案例
  • 向银行贷款资产包括哪些
  • 商誉在报表中如何填列
  • 承兑汇票重复背书
  • 分配现金股利是什么活动
  • 筹备期间的开办企业是指
  • 教育费附加减免性质代码
  • 积分兑换现金的软件
  • 借应收账款贷应收账款是什么意思
  • 社保滞纳利息所得税前扣除
  • 劳务派遣 税务
  • 简易计税项目进项
  • 钱已确定收不回怎么办
  • 个人独资企业没有章程
  • vmware11安装win10
  • 车辆理赔过程中,赔付款给谁
  • php imagecreatetruecolor 创建高清和透明图片代码小结
  • 金融企业贷款损失准备金税务管理
  • 出口收汇可以收人民币吗
  • 抵扣进项税额的几种情况是
  • php 函数返回值
  • 企业通讯费管理办法
  • php使用( )关键字来创建对象
  • 纳税检查企业所得税企业合并
  • 确认应付职工薪酬如何计算
  • css入门经典
  • 高效刷题app
  • 公司收到个人汇款怎么开发票
  • 商品进销差价在借方还是贷方
  • sql server 2008 安装文件
  • 什么是房地产企业?它主要具有哪些特性?
  • 其他应付款做账
  • 应付账款借方余额负数表示什么
  • 非盈利社会团体法人
  • 员工借款未还财务有责任吗
  • 应收应付账款统计表
  • 自己开发自己施工
  • 盘盈盘亏做好记录这句好怎么说
  • 收不到物业费不想干了
  • 设备维保费如何计算
  • 企业注销其他应付款怎么处理账务
  • 公司购买汽车怎么做账记账凭证
  • win10选择软件打开方式
  • windowxp怎么改ip地址
  • mac系统操作的小技巧
  • Fedora Core 5.0 安装教程,菜鸟图文版(图文界面)
  • linux如何关闭selinux
  • 怎样打开进程管理器功能
  • msedge.exe是什么
  • win8怎么启动资源管理器
  • Win10 Mobile build 10586.242提前上手体验
  • win7怎么查看系统位数
  • cocos2dx tableview基础:实现多图片的滑动显示
  • cocos2d游戏引擎
  • JavaScript中的NaN代表什么
  • pycharm远程调试linux
  • android 基础
  • python2.7和3.8
  • nodejs调用打印机
  • python中deque
  • Android ImageLoader 本地缓存
  • python安装包的命令
  • 税务巡视组一般检查什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设