网站首页 > 技术文章 正文
前情摘要
近一个月的梳理选型、各自都有功能近似的基础版本,基本为
- 前端 vue+elment-ui 多数都为vue-cli-service 脚手架 【种子项目vue-elment-admin】
- 服务端 java 微服务架构 基本趋向于阿里系配置### Spring Cloud Alibaba 、 Nacos用作注册中心
- 数据库 mysql作为应用开发端、实际服务涉及到常见oralce、mongodb、sqlserver、redis等
初步筛选已基本满足前端部分的一致性、暂未涉及跨框架如react、angular等、所以在选型阶段已经避免了复杂问题的处理 现阶段主要为快速达成统一登录授权管理融合、并以此为基础剔除掉各个应用的冗余功能用户、角色、单位、菜单、日志等、集中深化业务应用关键功能,便于后续多人开展工作,此时主要为最小耗费融合改造进行技术调研;
- 微前端 场景不太适应、技术体系相对单一且不存在已实际部署的应用,考虑到实际的技术耗费以及有些硬性指标不做约束无法达成或偏离初衷
- 联邦模块 主组件可以共享、包括layout、样式、业务逻辑、埋点、函数、可达成多态且集中可控的目的 子应用的开发改造,调整最小且能达成引用更新、分离部署互不干扰的目的 联邦模块的使用需要升级webpack5、但此版本属于重大更新,分离抽提了部分内部集成、升级未知性不可预见、好在有磨刀不误砍柴工的特性、一个升级完成,后续批量即可 webpack5据说比4性能强一些、但改造后没感觉有什么明显提升、只是考虑到新特性最终还是必然会用到,这个坑这次不趟,下次就要被逼着趟了 【人手不足的硬伤一直伴随着我】
思路目的
实际需要达成的目的主要是什么
- 短时间内就需整合出效果
- 风格统一、至少是外层菜单统一,目前前端融合部署、选型部分系于我一身、另外吐槽一句,专职做服务端或是前端的技术轴、我又沟通障碍了
- 融合多个应用为一个整体应用、但部署及业务规划是分离的,从这点来说比较贴近微前端的思想
- 一些非vue体系的应用需要重新开发规划改造、得尽力预留时间去处理
- 在后续人员补充前、尽量把整体骨架处理好
升级指南
可以看到升级的内容差异性包含有几部分 其中vue升级部分
升级
npm i @vue/cli@next @vue/cli-service@next @vue/cli-plugin-babel@next @vue/cli-plugin-eslint@next -D
如果包含有代码规范验证、则需要对以下做升级
"eslint": "7.5.0",
"eslint-plugin-vue": "^8.7.1"
同时更新规则 .eslintrc.js 升级后一些规则发生了变化,需要做出处理
新增 主要是webpack5和4的兼容问题
node-polyfill-webpack-plugin: "^1.1.4"
@vue/preload-webpack-plugin: "^2.0.0"
移除 script-ext-html-webpack-plugin: "2.1.3"
vue.config 兼容改造
//发布公共组件
const fede=require('./src/config/fede');
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
const preload = require('@vue/preload-webpack-plugin')
以下是配置改造部分
如果你.sass样式文件中需要用到js变量 样式丢失了 恭喜你踩坑成功
注意不兼容的写法、粗暴的办法就是注释掉
补充一句,如果你用脚手架做了分包处理、此处的共享组件引入会有问题,需要进行特殊处理才行
以上就是vue 升级相关的处理,到此处正常运行和编译暂未发现新问题
坑点
每次升级都是一场惊心动魄的脑细胞死亡争夺战,工程化带来便利的同时,对npm包的问题不多说 antd的彩蛋、padleft、开源注入ZZ言论 同时伴随着开源作者或傲娇或迫于生计或其他断更太监时有发生 往往包不兼容问题或没有替代方案都是需要待考察验证的、也许一个问题绕不过,就可能导致方案夭折 最后引用一句 实践是检验真理的唯一标准 技术YYDS
总结陈词
目前只是前端单个项目的升级、后续会扩展到第二个应用,也就是消费者端部分 至于具体在实现过程中还存在有什么问题、以待后续分享!
猜你喜欢
- 2024-09-27 一文带你彻底搞懂 NPM 知识点「进阶篇」
- 2024-09-27 深入探索Vue3:将您的项目打包为生产版本
- 2024-09-27 「Vue3教程」创建你的第一个Vue 3项目
- 2024-09-27 Vue3亮点:打造和发布你自己的组件库,简单步骤助你成为前端大神
- 2024-09-27 mac电脑如何安装VUE环境及预览(mac怎么安装vue)
- 2024-09-27 vue实战——自定义基础路径,端口号
- 2024-09-27 为了实践微前端,重构了自己的导航网站
- 2024-09-27 重磅!Vue CLI 3.0正式发布,带来多项重大更新
- 2024-09-27 运行 npm run xxx 的时候发生了什么?
- 2024-09-27 Vue全家桶-使用总结(国家基本药物使用情况分析总结)
- 1515℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 577℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 514℃MySQL service启动脚本浅析(r12笔记第59天)
- 487℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 470℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 450℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 448℃MySQL server PID file could not be found!失败
- 最近发表
-
- 宝塔面板Nginx如何提高网站访问速度?
- 接口调试工具ApiPost中form-data/x-www-form-urlencoded/raw区别
- 高并发场景下,Nginx性能如何提升10倍?
- 高并发场景下,Nginx如何抗住千万级流量?
- 浏览器中在线预览pdf文件,pdf.mjs插件实现web预览pdf
- 为什么你的网站加载慢?90%的人忽略了这2个设置。
- 别再无脑复制Nginx配置了!掌握这10个"性能核弹"级参数
- 你的Nginx配置,可能就是你网站最慢的一环,注意这几个优化参数
- 深入浅出HTTP压缩技术(http2压缩)
- C程序设计之:1-1/2+1/3-... + 1/n 的和
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)