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

  • 华为手机没有数据线怎么连接电脑(华为手机没有数据网络怎么回事)

    华为手机没有数据线怎么连接电脑(华为手机没有数据网络怎么回事)

  • 红米k30有屏幕指纹解锁吗(红米k30有屏幕指纹功能吗)

    红米k30有屏幕指纹解锁吗(红米k30有屏幕指纹功能吗)

  • iphone xr怎么打开相机水印(iphonexr怎么打开电量百分比)

    iphone xr怎么打开相机水印(iphonexr怎么打开电量百分比)

  • 苹果7呼叫转移一直转圈(苹果7呼叫转移一直转圈怎么弄)

    苹果7呼叫转移一直转圈(苹果7呼叫转移一直转圈怎么弄)

  • cpu es版是什么意思(es版cpu性能如何)

    cpu es版是什么意思(es版cpu性能如何)

  • 爱奇艺属于腾讯应用吗(爱奇艺属于腾讯王卡免流吗)

    爱奇艺属于腾讯应用吗(爱奇艺属于腾讯王卡免流吗)

  • iphone11高德地图用不了(苹果11高德地图信号弱怎么解决)

    iphone11高德地图用不了(苹果11高德地图信号弱怎么解决)

  • a1518支持什么网络(苹果a1518支持什么网络)

    a1518支持什么网络(苹果a1518支持什么网络)

  • 什么叫做直播带货(什么是直播间带货)

    什么叫做直播带货(什么是直播间带货)

  • 微软powerbi免费吗(powerbi.microsoft.com)

    微软powerbi免费吗(powerbi.microsoft.com)

  • 微信多人视频最多几个人(微信多人视频最小化了怎么开出来)

    微信多人视频最多几个人(微信多人视频最小化了怎么开出来)

  • wps闪退没保存怎么办(wps闪退没保存怎么找回来)

    wps闪退没保存怎么办(wps闪退没保存怎么找回来)

  • icp备案一般要多久(icp备案麻烦吗)

    icp备案一般要多久(icp备案麻烦吗)

  • 逆光的照片怎么修亮(逆光的照片怎么照)

    逆光的照片怎么修亮(逆光的照片怎么照)

  • vivoz5是玻璃后盖吗(vivoz5玻璃后盖怎么拆)

    vivoz5是玻璃后盖吗(vivoz5玻璃后盖怎么拆)

  • 一万抖音币提现多少(一万抖音币提现要多少钱)

    一万抖音币提现多少(一万抖音币提现要多少钱)

  • ssl协议是什么层的协议(ssl协议是什么层次的协议)

    ssl协议是什么层的协议(ssl协议是什么层次的协议)

  • 网关地址一般是多少(网关地址一般是多少254)

    网关地址一般是多少(网关地址一般是多少254)

  • 爱玛小蜜豆充电口在哪(爱玛小蜜豆充电器头是什么样子的)

    爱玛小蜜豆充电口在哪(爱玛小蜜豆充电器头是什么样子的)

  • x27vivo有没有面部识别(vivo x27有面容识别吗)

    x27vivo有没有面部识别(vivo x27有面容识别吗)

  • 华为手机怎样去除浮点(华为手机怎样去除马赛克)

    华为手机怎样去除浮点(华为手机怎样去除马赛克)

  • 华为watch3发布时间(华为watch3发布价)

    华为watch3发布时间(华为watch3发布价)

  • 华为p30的语音助手在哪里(华为p30的语音助手不能使用)

    华为p30的语音助手在哪里(华为p30的语音助手不能使用)

  • ps时间轴怎么做动画(ps时间轴怎么做视频时间轴)

    ps时间轴怎么做动画(ps时间轴怎么做视频时间轴)

  • python 如何开发应用程序(python如何开发系统)

    python 如何开发应用程序(python如何开发系统)

  • 增值税留抵抵欠情况说明怎么写
  • 小规模纳税人的进项税额怎么处理
  • 购买方已抵扣怎么作废
  • 怎样填写增值税普通发票
  • 新企业会计准则什么时候实施的
  • 应交消费税通过什么科目核算
  • 股利支付率怎么找数据
  • 检测样品留样期限
  • 周转材料计入什么账
  • 从对公账户提取备用金违法吗
  • 付款然后付的手续费如何做账?
  • 分摊材料成本差异率怎么算
  • 增值税专票电话号码错了有关系吗
  • 专票认证不通过退回
  • 差额开票扣除额可以大概数
  • 人工成本如何申报个税
  • 未按规定期限办理身份证
  • 工业企业成本结转金额怎么确定
  • 编制会计报表利润表
  • 价内税与价外税名词解释
  • 1697509422
  • WIN7系统的镜像文件在哪里
  • win11可以玩游戏吗
  • macos big sur怎么运行ios软件
  • 公司撤股后还要担责任吗
  • 现金付款凭证是什么意思
  • getcodebase
  • 装饰工程施工包括什么
  • 分期收款销售商品,收到本期货款50万元
  • 计算机视觉基础知识
  • 10年未被强制修复!黑客利用Windows旧漏洞攻击通信公司并分发恶意文件
  • 会计账的银行存款与银行存款不一致 是属于账账不符吗
  • vue组件怎么使用
  • 融资租入固定资产的账务处理
  • fortify 安装
  • 财务费用在贷方,怎么结转到本年利润?
  • 学习笔记——Servlet
  • python Timer定时器如何使用?
  • 小规模企业申报哪些税
  • 公允价值变动损益属于什么科目
  • 企业选择的短期调整
  • 外贸会计账务处理实务
  • 不得从销项税额中抵扣的进项税额,不得计提加计抵减额
  • 企业从应付职工工资中代扣的职工房租应借记什么科目
  • 小额贷款在银行需要什么条件
  • 设备升级是什么意思
  • 有留抵税额的会计处理
  • 施工企业项目部发生的管理人员工资应计入
  • 小规模纳税人附加税减半征收
  • 施工单位的罚款标准
  • 开出发票后直接做账吗?
  • 企业一般户怎么查询
  • 租金是含税价还是含税金
  • 电子记账app下载
  • 电梯在固定资产里属于什么设备类别
  • 新收入准则要求
  • sql语句中单引号怎么打
  • Mysql中explain作用详解
  • ubuntu 挂载iso文件
  • linux解释
  • centos安装图形oracle11g
  • 电脑怎么换系统教程
  • win7定时静音
  • win7打开网页显示证书有问题
  • win7的注册表在哪里打开
  • win7电脑曝光度过高怎么调
  • linux在vim编辑器中,将光标移动
  • windows资源管理器在哪个文件夹
  • cocos2dx AudioEngine初体验,音效播放结束判断测试
  • Unity5 Assetbundle简单使用 及 打包Material文件超大的问题
  • bootstrap内容
  • javascript的用法
  • jQuery的extend方法【三种】
  • python 爬虫
  • python利用for循环求1到100的奇数之和
  • AutoPainting
  • 基于JAVASCRIPT实现的可视化工具是
  • Python Sqlite3以字典形式返回查询结果的实现方法
  • 佛山顺德怎么坐地铁到广州
  • 车船使用税电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设