当前位置: 首页 > Web前端 > vue.js

全网最硬核Element-UI从Vue-cli迁移到Vite(二)

时间:2023-03-31 21:55:59 vue.js

1.前言前不久迁移了ant-design-vue-pro项目,参考文章:最硬核全网Ant-Design-Vue从Vue-cli迁移到Vite(一),迁移后项目地址:GitHub-Seals-Studio/ant-design-vue-pro-vite本期Element-UI库迁移到vue-element-admin项目为例进行迁移,element-ui版本为2.13.2。同时提供迁移后的仓库。欢迎来到Star~GitHub-Seals-Studio/vue-element-admin-vite二、背景众所周知,Vite作为下一代前端开发构建工具,有一个词:快。并且Vite已经被用作Vue3的默认构建工具。实验表明,项目迁移后,从Vue-cli的近2分钟到Vite的5秒(不同项目时间不同),速度提升了几十倍甚至上百倍。迁移前后对比(参考)构建工具服务器启动时间第一次页面加载速度(无缓存)第二次加载速度(有缓存)热更新HMR打包Webpack83s4.78s3.35s4.78s3mins37sVite4.72s(第二次)time0.72s)1.71s1.33sinstant51.45s3.删除package.json相关依赖删除@vue和babel相关{"@vue/cli-plugin-babel":"4.4.4","@vue/cli-plugin-eslint":"4.4.4","@vue/cli-plugin-unit-jest":"4.4.4","@vue/cli-service":"4.4.4","@vue/test-utils":"1.0.0-beta.29","babel-eslint":"10.1.0","babel-jest":"23.6.0","babel-plugin-dynamic-import-node":"2.3.3",}删除loader(webpack插件)和webpack{"html-webpack-plugin":"3.2.0","script-ext-html-webpack-plugin":"2.1.3","sass-loader":"8.0.2","svg-sprite-loader":"4.1.3",}删除babel.conf.js和jsconfig.json安装pnpm工具pnpm是一个快速、节省磁盘空间的包管理工具npmi-gpnpm#淘宝源pnpm配置集注册表https://registry.npm.taobao.orgpnpm配置设置disturlhttps://npm.taobao.org/distpnpm配置设置NVM_NODEJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/nodepnpm配置设置NVM_IOJS_ORG_MIRRORhttp:///npm.taobao.org/mirrors/iojspnpm配置设置PHANTOMJS_CDNURLhttps://npm.taobao.org/dist/phantomjspnpm配置设置ELECTRON_MIRRORhttp://npm.taobao.org/mirrors/electron/pnpm配置设置SASS_BINARY_SITEhttp://npm.taobao.org/mirrors/node-sasspnpm配置设置SQLITE3_BINARY_SITEhttp://npm.taobao.org/mirrors/sqlite3pnpm配置设置PYTHON_MIRRORhttp://npm.taobao.org/mirrors/python4.安装最新版本的vite和vite-plugin-vue2pnpmaddvitevite-plugin-vue2-D5.新建vite.conf.jsimport{defineConfig}from'vite'//vitepluginofvue2import{createVuePlugin}from'vite-plugin-vue2'exportdefault({mode})=>{returndefineConfig({plugins:[createVuePlugin({jsx:true})]})})六、修改index.html,将public/index.html移动到代码根目录保守党(和package.j子同级)在body标签中添加如下内容:替换htmlWebpackPlugin插件注入变量htmlWebpackPlugin是webpack插件,所以不能再使用。vite提供了vite-plugin-html插件来向index.html注入变量。安装vite-plugin-htmlpnpm添加vite-plugin-html-D修改vite.config.js,添加配置插件:[//...createHtmlPlugin({minify:true,inject:{data:{title:'vueElementAdmin',cdn:{css:[],js:['//cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js','//cdn.jsdelivr.net/npm/vue-router@3.5.1/dist/vue-router.min.js','//cdn.jsdelivr.net/npm/vuex@3.1.1/dist/vuex.min.js','//cdn.jsdelivr.net/npm/axios@0.21.1/dist/axios.min.js']}}}}),//...]修改index.html修改title<%=title%>/title>修改css和js导入<!--需要cdn资产css--><%for(variincdn.css){%><linkrel="stylesheet"href="<%=cdn.css[i]%>"/><%}%><!--需要cdn资产js--><%for(variincdn.js){%><%}%>7.环境变量替换为了安全起见,vite只能识别以VITE_开头的环境变量,原来的VUE_环境变量不再有效,同时不能使用process.env.xxx读取环境变量需要修改vite.conf.js配置,手动添加process.env.xxx环境变量修改vite.conf.js配置,添加环境变量import{defineConfig,loadEnv}from'vite'exportdefault({mode})=>{constenv=loadEnv(mode,process.cwd())returndefineConfig({define:{'process.env':{...env}},})})将所有VUE_开头的环境变量替换为VITE_更改将所有process.env.NODE_ENV改为import.meta.env.MODE全部改为process.env。导入.meta.env。8.Element-UI根据需要引入并安装vite-plugin-style-import插件#注意这个插件必须使用1.4.1版本,不是最新的2.0.0版本pnpmaddvite-plugin-style-import@^1.4.1-D添加vite.conf.js配置插件:[//...styleImport({libs:[{libraryName:'element-ui',//styleLibraryName:'theme-chalk',esModule:true,resolveStyle:(name)=>{return`theme-chalk/${name}.css`}}],}),//...]9.添加代理安装路径-browserifypnpmaddpath-browserify-Daddvite.conf.js配置插件:[],//...服务器:{端口:8000,//代理:{//'/api':{//目标:'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro',//changeOrigin:true,//ws:false,//重写:(path)=>path.replace(/^\/api/,''),//}//},},十、package.json脚本命令修改修改脚本命令如下:"scripts":{"dev":"vite","build":"vitebuild","preview":"vitepreview"},11.postcss配置安装插件pnpmaddpostcssautoprefixer-D12.添加eslint插件安装插件pnpmremoveeslinteslint-plugin-htmleslint-plugin-vuepnpm添加eslinteslint-plugin-htmleslint-plugin-vueeslint-config-prettiereslint-plugin-prettierprettier-D#vite-eslintpluginpnpm添加vite-plugin-eslint-D添加vite。conf.js配置importeslintPluginfrom'vite-plugin-eslint'exportdefault({mode})=>{returndefineConfig({plugins:[//...eslintPlugin(),//...]})}十3.在文件中添加lang="jsx"第十四,添加@alias修改vite.conf.js配置exportdefault({mode})=>{returndefineConfig({resolve:{//...alias:[{find:/@\/.+/,replacement:(val)=>{returnval.replace(/^@/,path.resolve(__dirname,'./src/'))},},{//这是所需的SCSS模块查找:/^~(.*)$/,替换:'$1'}]},)}十五、静态文件导入动态组件importconstmodules=import.meta.glob('../views/**/*.vue')constcurrentRouter{...//组件:constantRouterComponents[item.component||item.key]||(()=>import(`/src/views/${item.component}`)),component:constantRouterComponents[item.component||item.key]||<template><img:src="LogoImg"/></template>使用import.meta.globEager图片加载<template><img:s('../../assets/img/log.svg')"/></template>*2.require.context替换//修改前//constreq=require.context('./svg',false,/.svg$/)//constrequireAll=requireContext=>requireContext.keys().map(requireContext)//修改后的constreq=import.meta.globEager('./svg/*.svg')constrequireAll=(requireContext)=>Object.keys(requireContext).map((key)=>requireContext[key].default)###16.spritemaploadsvg-sprite-loaderreplaceinstallvite-plugin-svg-icons插件pnpm添加vite-plugin-svg-icons-D配置vite.config.jsimport{createSvgIconsplugin}from'vite-plugin-svg-icons'defineConfig({plugins:[//...//SpriteimagecreateSvgIconsPlugin({//指定需要缓存的图标文件夹iconDirs:[path.resolve(__dirname,'./src/icons/svg')],//指定symbolId格式symbolId:'icon-[dir]-[name]',/***自定义插入位置*@default:body-last*/inject:'body-last'|'body-first',/***自定义domid*@default:__svg__icons__dom__*/customDomId:'__svg__icons__dom__'})]})添加到main.js</p> </div> </div> <div class="zuowen_sxy"> <div class="prev">上一篇:<a title="Koa&Mongoose&Vue实现前后端分离--05服务器注册&登录:业务逻辑" href="/webqianduan/214602.html">Koa&Mongoose&Vue实现前后端分离--05服务器注册&登录:业务逻辑</a> </div> <div class="prev">下一篇:<a title="vue监控浏览器存储变化" href="/webqianduan/214604.html">vue监控浏览器存储变化</a> </div> </div> <div class="related_about"> <div class="related_about_t"><code>全网最硬核Element-UI从Vue-cli迁移到Vite(二)相关文章</code></div> <ul> <li><a href="/kejifunen/364695.html" target="_blank" title="创维全面屏55H5电视!顶级HDR全核解码芯片">创维全面屏55H5电视!顶级HDR全核解码芯片</a></li> <li><a href="/kejifunen/364561.html" target="_blank" title="CSHE2016机器人论坛畅谈人工智能及机器人核心技术">CSHE2016机器人论坛畅谈人工智能及机器人核心技术</a></li> <li><a href="/kejifunen/364414.html" target="_blank" title="对话百度特工负责人景坤!四大核心场景打造标杆产品渡鸦智能音箱">对话百度特工负责人景坤!四大核心场景打造标杆产品渡鸦智能音箱</a></li> <li><a href="/kejifunen/364366.html" target="_blank" title="华为推出手机AI芯片麒麟970 采用寒武纪IP核比CPU快2">华为推出手机AI芯片麒麟970 采用寒武纪IP核比CPU快2</a></li> <li><a href="/kejifunen/364342.html" target="_blank" title="浙江农信联携手我趣科技,互联网技术助推在线金融核心平台">浙江农信联携手我趣科技,互联网技术助推在线金融核心平台</a></li> <li><a href="/kejifunen/364323.html" target="_blank" title="微软HoloLens眼镜新处理单元HPU 24核台积电代工">微软HoloLens眼镜新处理单元HPU 24核台积电代工</a></li> <li><a href="/kejifunen/363681.html" target="_blank" title="中国声谷50亿发展基金重点支持拥有核心技术的人工智能项目 ">中国声谷50亿发展基金重点支持拥有核心技术的人工智能项目 </a></li> <li><a href="/kejifunen/363410.html" target="_blank" title="大德中电谢卫华独家专访!智能家居的核心是控制系统">大德中电谢卫华独家专访!智能家居的核心是控制系统</a></li> <li><a href="/kejifunen/363299.html" target="_blank" title="Facebook利用AI机器学习解决内容审核问题">Facebook利用AI机器学习解决内容审核问题</a></li> <li><a href="/kejifunen/363205.html" target="_blank" title="物联网革命的核心是“网络”而不是“物”">物联网革命的核心是“网络”而不是“物”</a></li> <li><a href="/kejifunen/362972.html" target="_blank" title="机器人领域的这10项核心技术你听说过哪些? ">机器人领域的这10项核心技术你听说过哪些? </a></li> <li><a href="/kejifunen/362955.html" target="_blank" title="以智能化为核心价值,TCL空调展现新动力">以智能化为核心价值,TCL空调展现新动力</a></li> <li><a href="/kejifunen/362200.html" target="_blank" title="NVIDIA全新TITAN X显卡详细规格发布!核心471m">NVIDIA全新TITAN X显卡详细规格发布!核心471m</a></li> <li><a href="/kejifunen/362172.html" target="_blank" title="我们用真实数据说话,坚果智能投影双11是全网最畅销的产品, ">我们用真实数据说话,坚果智能投影双11是全网最畅销的产品, </a></li> <li><a href="/kejifunen/362001.html" target="_blank" title="智能家居核心技术“总线技术”">智能家居核心技术“总线技术”</a></li> <li><a href="/kejifunen/361932.html" target="_blank" title="俄罗斯展示未来士兵装备!防核手表">俄罗斯展示未来士兵装备!防核手表</a></li> <li><a href="/kejifunen/361751.html" target="_blank" title="聚焦智能化两大核心领域剖析行业形势">聚焦智能化两大核心领域剖析行业形势</a></li> <li><a href="/kejifunen/361422.html" target="_blank" title="《核心人类新玩法》购买AMD锐龙笔记本,迎接返校季! ">《核心人类新玩法》购买AMD锐龙笔记本,迎接返校季! </a></li> <li><a href="/kejifunen/361321.html" target="_blank" title="Apple AirPods 无线耳机有何过人之处?说说核心技">Apple AirPods 无线耳机有何过人之处?说说核心技</a></li> <li><a href="/kejifunen/361216.html" target="_blank" title="2018年度智能锁十大品牌奖揭幕,核桃智能锁又获十大品牌大奖">2018年度智能锁十大品牌奖揭幕,核桃智能锁又获十大品牌大奖</a></li> </ul> </div> </div> <div class="main-right"> <div class="right_fix"> <div class="r_con"> <div class="r_title">最新推荐</div> <ul> <li><em>1</em><a href="/kejifunen/370968.html" title="马志强!五个特点打造青云SD-WAN产品核心优势" target="_blank">马志强!五个特点打造青云SD-WAN产品核心优势</a></li> <li><em>2</em><a href="/kejifunen/370176.html" title="盘点HTC Vive、Oculus Rift、PlaySta" target="_blank">盘点HTC Vive、Oculus Rift、PlaySta</a></li> <li><em>3</em><a href="/kejifunen/370135.html" title="【盘点】智能穿戴行业五项核心技术" target="_blank">【盘点】智能穿戴行业五项核心技术</a></li> <li><em>4</em><a href="/kejifunen/369112.html" title="时隔两年,Wear OS智能手表终于等到了高通新核心" target="_blank">时隔两年,Wear OS智能手表终于等到了高通新核心</a></li> <li><em>5</em><a href="/kejifunen/369110.html" title="智能可穿戴设备发展潜力巨大,核心技术壁垒仍需攻克" target="_blank">智能可穿戴设备发展潜力巨大,核心技术壁垒仍需攻克</a></li> <li><em>6</em><a href="/kejifunen/369056.html" title="巨人网络新品品鉴会圆满结束,硬核联盟莅临巨人网络体验试用" target="_blank">巨人网络新品品鉴会圆满结束,硬核联盟莅临巨人网络体验试用</a></li> <li><em>7</em><a href="/kejifunen/369014.html" title="苹果雄心勃勃,2018年再投资140亿美元打造自研核心技术" target="_blank">苹果雄心勃勃,2018年再投资140亿美元打造自研核心技术</a></li> <li><em>8</em><a href="/kejifunen/368780.html" title="可穿戴产品越来越多,中外厂商都在强化产品核心" target="_blank">可穿戴产品越来越多,中外厂商都在强化产品核心</a></li> <li><em>9</em><a href="/kejifunen/368528.html" title="海信电视U9D!显示技术成核心" target="_blank">海信电视U9D!显示技术成核心</a></li> <li><em>10</em><a href="/kejifunen/368171.html" title="“核心太软了”! IoT和数据中心已成蓝海" target="_blank">“核心太软了”! IoT和数据中心已成蓝海</a></li> </ul> </div> <div class="r_con"> <div class="r_title">猜你喜欢</div> <ul class="you_like"> <li><em>1</em><a href="/kejifunen/367583.html" title="百度地图举办“LBS+AI”沙龙,分享语音AR等核心技术,全" target="_blank">百度地图举办“LBS+AI”沙龙,分享语音AR等核心技术,全</a></li> <li><em>2</em><a href="/kejifunen/367494.html" title="盘点智能穿戴行业五项核心技术" target="_blank">盘点智能穿戴行业五项核心技术</a></li> <li><em>3</em><a href="/kejifunen/367452.html" title="乐视Kido Watch儿童智能手表发布!售价698元, 4" target="_blank">乐视Kido Watch儿童智能手表发布!售价698元, 4</a></li> <li><em>4</em><a href="/kejifunen/367438.html" title="Jeep发布智能手表!支持4G全网络通讯" target="_blank">Jeep发布智能手表!支持4G全网络通讯</a></li> <li><em>5</em><a href="/kejifunen/367256.html" title="米兔积木机器人新品来袭 米兔积木动力机械全网发售" target="_blank">米兔积木机器人新品来袭 米兔积木动力机械全网发售</a></li> <li><em>6</em><a href="/kejifunen/366893.html" title="智能家居核心入口TCL在柏林首次亮相曲面全屏C7电视" target="_blank">智能家居核心入口TCL在柏林首次亮相曲面全屏C7电视</a></li> <li><em>7</em><a href="/kejifunen/366799.html" title="致力于中药国际化,天士力依托核心技术打造现代中药“智造”产业" target="_blank">致力于中药国际化,天士力依托核心技术打造现代中药“智造”产业</a></li> <li><em>8</em><a href="/kejifunen/366749.html" title="网上预约!硬核战力如火如荼, ROG游戏手机玩转电竞圈" target="_blank">网上预约!硬核战力如火如荼, ROG游戏手机玩转电竞圈</a></li> <li><em>9</em><a href="/kejifunen/366664.html" title="可穿戴设备的世界充满了危险,掌握核心技术才能勇往直前" target="_blank">可穿戴设备的世界充满了危险,掌握核心技术才能勇往直前</a></li> <li><em>10</em><a href="/kejifunen/366613.html" title="华米科技宣布收购Zepp-PEI核心资产!拓展高端运动产品市" target="_blank">华米科技宣布收购Zepp-PEI核心资产!拓展高端运动产品市</a></li> <li><em>11</em><a href="/kejifunen/366378.html" title="核桃智能锁为何荣获多项国际国内奖项? " target="_blank">核桃智能锁为何荣获多项国际国内奖项? </a></li> <li><em>12</em><a href="/kejifunen/366341.html" title="智能核心,致永恒——HUAWEI WATCH使用回顾" target="_blank">智能核心,致永恒——HUAWEI WATCH使用回顾</a></li> <li><em>13</em><a href="/kejifunen/366164.html" title="2018年度十大智能锁品牌奖揭晓!核桃智能锁——实力品牌,极" target="_blank">2018年度十大智能锁品牌奖揭晓!核桃智能锁——实力品牌,极</a></li> <li><em>14</em><a href="/kejifunen/365682.html" title="斐讯发布公告!部分用户启用K码兑换需要人工审核" target="_blank">斐讯发布公告!部分用户启用K码兑换需要人工审核</a></li> <li><em>15</em><a href="/kejifunen/365653.html" title="犀牛云网络胜出!稳步提升排名,帮助企业实现全网营销" target="_blank">犀牛云网络胜出!稳步提升排名,帮助企业实现全网营销</a></li> <li><em>16</em><a href="/kejifunen/365617.html" title="普华和诚医药人工智能解决医院处方审核难题" target="_blank">普华和诚医药人工智能解决医院处方审核难题</a></li> <li><em>17</em><a href="/kejifunen/365530.html" title="产业井喷 我国智能穿戴产业核心技术仍缺失" target="_blank">产业井喷 我国智能穿戴产业核心技术仍缺失</a></li> <li><em>18</em><a href="/kejifunen/365477.html" title="AI人才大战!跳槽只是闲话,人才标准才是核心" target="_blank">AI人才大战!跳槽只是闲话,人才标准才是核心</a></li> <li><em>19</em><a href="/kejifunen/365381.html" title="盘点智能穿戴设备必备的九大核心芯片" target="_blank">盘点智能穿戴设备必备的九大核心芯片</a></li> <li><em>20</em><a href="/kejifunen/365197.html" title="乐视网第N次暂停交易!媒体不利报道正在核实中" target="_blank">乐视网第N次暂停交易!媒体不利报道正在核实中</a></li> </ul> </div> </div> </div> </div> <div class="related_article"></div> <div class="footer"> <p>Copyright © 2012-2022 程序源 版权所有<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">豫ICP备2022028201号</a></p> <p>重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。 如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。</p> </div> <!-- 应用插件标签 start --> <!-- 应用插件标签 end --> </body> </html>