关于前端:多个项目公用同一个页面模块的解决方案

78次阅读

共计 1192 个字符,预计需要花费 3 分钟才能阅读完成。

多个我的项目专用同一个页面模块的解决方案

最近遇到一个需要。有 3 个我的项目专用同一套菜单、字典等通用的页面。其实在启动第二个我的项目的时候,前端这边就曾经不太好操作了。因为改一个问题要改两次,十分不不便。何况当初第三个我的项目要通用这个模块,在网上搜了很多解决方案。有 <font color=”red”> 微前端、git subTree,npm 治理 </font>。

  1. 微前端:次要是我的项目对我的项目,是做我的项目拆散,用路由去匹配对应的我的项目来解决的,而我这个我的项目只是单纯的页面,所以没必要弄的那么简单。
  2. npm 治理,这个要放在 npm 服务上,或者搭建私服,和 java 的 maven 差不多的意思。不过咱们须要的是页面,外面有业务逻辑和公有的货色,不不便裸露,而且常常须要批改的。频繁的公布,拉取也不不便。个人感觉更加适宜一些专用组件,或者是通用办法的封装这些不须要频繁改变的货色。

git subTree

git subTree 是 git 官网举荐的一款公共仓库的管理工具。

git subTree 的长处:

对于我的项目中的其余成员是通明的,也就是说如果看目录,和一般的目录基本没有差异。

git subTree 的毛病:

子仓库更新,推送命令简单(这点非常容易解决)

需要

有 A 我的项目和 B 我的项目,目录构造大略是

A - a  B - b 
  - s    - s

两个我的项目都同时有 s 模块,那么这样咱们就能够独自把 s 模块抽离进去,放入一个新的仓库中,新的仓库就叫S

解决方案

  1. 在须要引入的我的项目 A 或者 B 中 先给 S 模块起个别名,我这里起名 basicpage
git remote add basicpage 我的项目地址
  1. 引入我的项目
git subtree add --prefix= 须要放的地位 basicpage  我的项目分支 是否做一次提交
git subtree add --prefix=src/basic basicpage  master --squash
A - a  B - b 
  - s    - s
  - src/basic -s

这样会在我的项目的 src 目录下生成一个 basic 目录,外面就是 S 我的项目。
咱们只有在 A 我的项目的模块 s 中的页面中引入 basic 目录下的文件就能够应用了。

  1. 推送
git subtree push --prefix= 我的项目放的地位 basicpage  我的项目分支 
git subtree push --prefix=src/basic basicpage  master
  1. 拉取
git subtree pull --prefix= 我的项目放的地位 basicpage  我的项目分支 
git subtree pull --prefix=src/basic basicpage  master
  1. 如果嫌命令太长能够在 page.json 中增加命令
    "git_push:basic": "git subtree push --prefix=src/basic basicpage  master",

当然还有一些分支类的命令,大家本人能够去钻研了,这里只是简略的用法。

正文完
 0