前端如何将多个项目的页面代码共享一份? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tomiaa
V2EX    前端开发

前端如何将多个项目的页面代码共享一份?

  •  
  •   tomiaa 2024 年 1 月 9 日 2149 次点击
    这是一个创建于 743 天前的主题,其中的信息可能已经有所发展或是发生改变。
    两个项目都用到了一个页面,现在是 a,b 项目两份一样的代码,有什么好的方法把两个项目的这个页面都用一份代码吗

    我想要实现这个代码改了之后两个项目都同时变,而不是改一个需求两个项目都要去改一下

    公司没有 npm 服务器,而且两个项目都是分开的 git 仓库我也没权限把两个仓库整合成 monorepo
    12 条回复    2024-05-28 16:36:04 +08:00
    Imindzzz
        1
    Imindzzz  
       2024 年 1 月 9 日 via Android
    git submodule
    yl20181003
        2
    yl20181003  
       2024 年 1 月 9 日
    试试 MicroApp 或者 Module Federation 单独部署一份,a ,b 两个项目各自加载一遍
    XCFOX
        3
    XCFOX  
       2024 年 1 月 9 日
    npm pack 一下会得到一份模块压缩包。把这个压缩包扔到 oss 上,或者再开一个仓库专门用来存模块包,或者直接把模块扔 a,b 项目仓库里。

    从 url 安装模块:npm install https://github.com/indexzero/forever/tarball/v0.5.6
    从 本地安装模块: npm install ./package.tgz

    参考:
    https://docs.npmjs.com/cli/v10/commands/npm-pack
    https://docs.npmjs.com/cli/v10/commands/npm-install
    https://pnpm.io/zh/cli/pack
    https://pnpm.io/zh/cli/install
    https://yarnpkg.com/cli/pack
    https://yarnpkg.com/cli/add
    sqlNice
        4
    sqlNice  
       2024 年 1 月 9 日
    感觉还是 git submodule 或者 git subtree 合适。你只需要提取公共代码放在一个单独的 git 仓库里,然后这两个项目进行引用就可以了
    flyPig9527
        5
    flyPig9527  
       2024 年 1 月 9 日
    没有私有的 npm 服务器,还是搞个公共 npm 包吧,不是什么很大的商业机密是不会有人在意的
    flyPig9527
        6
    flyPig9527  
       2024 年 1 月 9 日
    npm 也能按照公司内网的 gitlab 项目,可以在公司内网的 gitlab 建个仓库,npm install 下来也行
    tool2d
        7
    tool2d  
       2024 年 1 月 9 日
    小项目整那么复杂,直接文件夹同步过去。
    Baymaxbowen
        8
    Baymaxbowen  
       2024 年 1 月 9 日
    微应用包一下 A 做主应用,B 做子应用,这个页面写在 B 项目里面,在 A 应用里面引用 B ,可以使用 qiankun 、MicroApp 、Module Federation 来实现,如果要再简单可以使用 iframe 实现
    laoona
        9
    laoona  
       2024 年 1 月 9 日
    pnpm 的 workspace 能否实现?
    zsj1029
        10
    zsj1029  
       2024 年 1 月 9 日
    Lerna 主推
    rush js 微软的也可以
    Monorepo 应该是属于这个需求吧
    web1996
        11
    web1996  
       2024 年 2 月 22 日 via Android
    直接将这个页面输出一个 js 文件来引用,可不可以。
    heishu
        12
    heishu  
       2024 年 5 月 28 日
    楼主最后采用哪种方案了??
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     973 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:22 PVG 06:22 LAX 14:22 JFK 17:22
    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