最近整体架构变动中需要把某一个Vue项目(后面简称B项目)的部分内容迁移到项目A中,其中包含多个页面和功能,在此记录下。
先整体分析下有哪些内容需要迁移过来,大致思路是迁移页面的
-->路由模块 -->页面内容 -->依赖相关 -->静态资源 -->配置相关
下面开始开干,先从路由开始入手
1.router 路由模块
现在市面上流行的vue-admin等模板工程基本都有以下配置
*简单解释下就是会自动解析router/modules目录下的以js为后缀的文件,并以异步路由形式导出便于动态加载路由内容,通俗来说就是分模块归类路由文件 *
所以我们在A项目的src/router/modules/下面新建我们迁移的页面路由内容,这里说一下,这是后台系统,路由应该是从接口数据返回动态加载到全局的router里面,现在具体方案还没定,而且利于说明,这里直接把对应路由内容手动加载。如下图:
然后就可以进行下一步页面内容的迁移了。
2.views页面内容
这一步直接把B项目需要迁移的页面内容复制到A项目views文件夹下面即可,如下图
view里面的内容迁移过之后还需要把用到的components也同样从B项目复制到A项目的components文件夹下哦~
此时如果项目已经在运行的话,已经会有错误报出,xxx is undefined 或者 not found 即缺少页面内容所需要的依赖,这就到了我们常见的vue项目运行问题中的场景,也就到了下一步,处理项目依赖相关问题。
3.依赖相关
在控制台中出现xxx未找到 或者已经提示需要npm install xxx之后,我们就可以按照提示进行相关依赖的安装,根据自己情况使用npm/cnpm/pnpm安装缺少的依赖即可。
安装好依赖,重新npm run dev编译,接下来可能会出现类型下图的报错
4.静态资源
这种就是静态资源路径访问有问题了,我们需要把对应的静态资源也迁移过来,放置到可以正确访问的路径下即可, 这一步没什么难度,但因为迁移的项目复杂度不一样,替换的内容会多一点,多点耐心,哪个文件引入有问题就处理哪个文件即可。
这步通常会遇到页面内引入资源包括但不限于:css文件,js文件,api方法文件,一般把B项目中用到的文件复制到A项目中即可解决。
通常情况下,以上4步处理完,访问我们本次新增的路由后,页面已经可以打开,但是控制台会有很多报错,如下图:
已经看到胜利的曙光了!
接下来就把控制台报错一个一个解决就行啦,这里的问题我统称为配置相关,即最后一步,也是最复杂的一部。
5.配置相关
这个报错是因为B项目使用axios请求方法和A项目的方法不一致,只要保证两个项目使用统一请求配置即可。
这种即为使用子组件未找到,看下components里是否缺失该组件,缺失的话补上即可。
----------我是分割线----------
本次迁移需求为合并两个项目内容,节省服务器资源,减少跨项目跳转和相关配置的坑。 以上基本上是迁移的整个过程,仅供参考学习,有不足的地方也欢迎各位补充。