需求背景
之前的陈旧项目没有工程化,项目体系比较庞大,升级和重构是必然的,但不能一下子全部升级,代码重构一句话,测试开发凉凉了,可以使用渐进式的方式逐步升级。
解决场景一:静态资源类型的工程,之前项目内嵌在java工程,或者使用ng启动的静态资源工程。
解决的痛点
A反向代理,前后端分离的基础
B热更新,开发体验提升
C资源合并与压缩
D 改动无痕,不能对旧项目有较大改动,成本太高
E 前端微服务形态演变,工程拆分,新旧工程不同迭代,不同技术
技术选型:
A webpack,基于webpack-dev-sever可以基本解决问题,但webpack通过资源引入构建依赖关系为核心,本身之前的旧项目不存在依赖关系,优势就不明显,需求改之前的旧项目加入入口js引入的行为,需要改动部分代码。
B grunt,基于工程流的实现方式打包,服务,热更新也都可以实现,插件的形式依赖性很强,自定义程度低,细粒化控制不能随心所欲。例如之前旧项目资源路径引用的个性配置,接口,路由等配置个性化程度每个项目都是不一样的
Cgrunt加liver-serve(源码非配置引入),打包等工程流交予grunt,服务热更新,路由控制接口等等交予node去完成,说白了你有node的控制权了下面想怎么玩还不是你说了算