msmmbl

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

  •  
  •   msmmbl · Mar 12, 2020 · 2329 views
    This topic created in 2278 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

    针对问题本身,最简单的办法就是在你们平时经常用到的 build 或者 run 命令里面加一个“&& npm update aModule”
    msmmbl
        6
    msmmbl  
    OP
       Mar 13, 2020
    @whileFalse ok,那就在部署之前,强制在所有项目中运行 npm update aModule
    msmmbl
        7
    msmmbl  
    OP
       Mar 13, 2020
    @whileFalse 不仅仅是文案,可能也会有功能的更改。比如一个 aModule 是一个公用的对话框,用于显示用户在我们系统中上传的所有图片,对这个对话框的修改,需要同步到所有引用这个对话框模块的其他项目。
    wenhai95
        8
    wenhai95  
       Mar 13, 2020 via Android
    用 lerna
    msmmbl
        9
    msmmbl  
    OP
       Mar 31, 2020
    @wenhai95 谢谢,研究了下,是要把多个 git 库改造成单个库。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2763 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:55 · PVG 19:55 · LAX 04:55 · JFK 07:55
    ♥ Do have faith in what you're doing.