入职初体验,从合并两个完整项目开始

613 阅读3分钟

接到leader的需求,由于初始项目文件过多,需要将前后端分别进行合并,后端接口由原来的两个:jrmserver和authserver合并成jrmserver,并对一些子接口进行了修改。作为前端,两个完整项目,jrm-admin与jrm-auth-admin合并成一个项目。 首先来看一下项目结构:

第一步当然是把项目结构看清楚,把页面及路由以及全局定义的一些东西看一遍,最重要的一点,为什么两个完整vue项目可以合并?两个项目之间肯定有联系,有可能是跳转,也有可能是嵌入

这里docker以及test目录不太清楚用来干嘛的,应该不需要改动,static目录把所有出现的静态文件都合上就好了,package.json需要合并成一个文件,把所有出现的依赖都写上,然后npm install完事,config的话,host和port改好就可以了,接下来就是最重要的src目录

1. assets

一共三个目录:css,font,js,分别对应全局css,iconfont图标字体,以及封装的一些方法,遇到这些就只能搬砖了,找不同然后cv,当遇到类名相同样式不同就只能把其中一个类名作修改,至于iconfont必须先把图标合并再重新下载字体文件,或者引入在线地址也ok,js也是搬砖。

2. components,service,main.js

的合并方式大致相同,components为全局定义的一些可以复用的组件,service为全局定义的一些方法(具体是什么方法,大致看一下就可以了,不需要完全理解),main.js就不用多说了,这里引入了全局组件,全局样式以及ui框架,他们的修改方式都是能合并成一个文件的就合并,不能的话就直接把整个文件夹cv。

3.

到了最主要的页面及路由的合并了!

通过观察page,发现两个项目是通过三个iframe进行关联(这里就对一个进行分析):
<iframe id="authFrame" style="width: 100%; border: none;min-height: 904px;margin-top: 0" src=""></iframe>
$('#authFrame').attr("src", servers.auth + "/#/user/" + servers.token + "/" + this.$route.params.projectId + "?license=" + new Date().getTime())

ifarme的src链接上一个测试环境下第二个项目的在线地址,加上传过去的参数,痛过观察第二个项目的路由会发现,刚好存在/user/:token/:subToken 这样的路由,大胆猜测projectId会不会就是subToken呢?如果是,那就非常明了了。(事实证明:的确是这样的)

所以现在有两种思路:1.保留iframe,将src改为本地项目地址,参数不变;2.去掉iframe,换上相应组件,并把参数传递下去

注意到src路径后面还有**"?license=" + new Date().getTime()**,我觉得应该是保证每次请求都是最新的文件,防止缓存,如果iframe换成组件,是不是就不会有这个问题了呢?

仔细一想,第一种思路既然要改为本地,为什么还要用iframe呢?

这里,有一篇关于iframe的介绍

iframe,我们来谈一谈

前端发展迅速,iframe使用的越来越少,并且功能都可以被代替,所以见到的还是比较少,不过还是得学🤔

还有一篇关于vue中使用iframe不刷新得文章Vue中对iframe实现keep alive(无刷新)