前端多个相互引用的工程,怎么保持引用最新代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
msmmbl
V2EX    前端开发

前端多个相互引用的工程,怎么保持引用最新代码

  •  
  •   msmmbl 2020-03-12 15:29:04 +08:00 2109 次点击
    这是一个创建于 2117 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司自建了 gitlab 用于内部的代码管理。

    现在用两个前端 git 工程 A、B 由不同的人开发。A 是一些公共的模块,B 引用了 A 中的模块,通过在package.json中:

    { "dependencies": { "aModule": "git+ssh://[email protected]:xxxx/xxxx" } } 

    这种方式引用了工程 A 中的模块。

    平时工程 A 会经常有些 bug 要修改,问题是,A 改完后,怎么通知到 B 我这已经改了,需要运行npm install更新下。

    或者这样的场景的最佳实践是怎样的。

    第 1 条附言    2020-03-12 16:13:27 +08:00
    似乎用 Git Subtree 才是正解?
    9 条回复    2020-03-31 13:07:24 +08:00
    terence4444
        1
    terence4444  
       2020-03-12 16:15:59 +08:00 via iPhone
    git submodule 应该适用
    orzorzorzorz
        2
    orzorzorzorz  
       2020-03-12 16:19:32 +08:00
    或者直接把 a clone 下来,然后在 b 里 link 过去。
    dorentus
        3
    dorentus  
       2020-03-12 16:25:53 +08:00
    维护内部仓库,作正常的版本发布才是正解吧。严格按照 semver 发布版本。

    另外,你永远不知道队友或者你自己在解决一个 bug 之后会引入多少其它 bug,所以一定不能不经测试直接使用最新版本。
    msmmbl
        4
    msmmbl  
    OP
       2020-03-12 16:34:36 +08:00
    @dorentus 嗯,A 项目本身我们也有 pull request 机制确保 master 分支的代码的质量。问题是现在引用 A 项目的其他项目太多了,有时候 A 项目改个文案什么的,要通知到好多其他项目去做更新,不是很方便。
    whileFalse
        5
    whileFalse  
       2020-03-12 22:36:59 +08:00
    我有点疑惑,为啥 A 模块改文案需要所有依赖者同时更新? 如果模块本身只是提供文案,那应考虑将文案文件提取到静态资源中而不是硬编码到代码里。

    针对问题本身,最简单的办法就是在你们平时经常用到的 build 或者 run 命令里面加一个“&& npm update aModule”
    msmmbl
        6
    msmmbl  
    OP
       2020-03-13 10:07:02 +08:00
    @whileFalse ok,那就在部署之前,强制在所有项目中运行 npm update aModule
    msmmbl
        7
    msmmbl  
    OP
       2020-03-13 10:12:40 +08:00
    @whileFalse 不仅仅是文案,可能也会有功能的更改。比如一个 aModule 是一个公用的对话框,用于显示用户在我们系统中上传的所有图片,对这个对话框的修改,需要同步到所有引用这个对话框模块的其他项目。
    wenhai95
        8
    wenhai95  
       2020-03-13 13:23:01 +08:00 via Android
    用 lerna
    msmmbl
        9
    msmmbl  
    OP
       2020-03-31 13:07:24 +08:00
    @wenhai95 谢谢,研究了下,是要把多个 git 库改造成单个库。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1026 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 17:41 PVG 01:41 LAX 09:41 JFK 12:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86