V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tomiaa
V2EX  ›  前端开发

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

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

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

    公司没有 npm 服务器,而且两个项目都是分开的 git 仓库我也没权限把两个仓库整合成 monorepo
    12 条回复    2024-05-28 16:36:04 +08:00
    Imindzzz
        1
    Imindzzz  
       321 天前 via Android
    git submodule
    yl20181003
        2
    yl20181003  
       321 天前
    试试 MicroApp 或者 Module Federation 单独部署一份,a ,b 两个项目各自加载一遍
    XCFOX
        3
    XCFOX  
       321 天前
    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  
       321 天前
    感觉还是 git submodule 或者 git subtree 合适。你只需要提取公共代码放在一个单独的 git 仓库里,然后这两个项目进行引用就可以了
    flyPig9527
        5
    flyPig9527  
       321 天前
    没有私有的 npm 服务器,还是搞个公共 npm 包吧,不是什么很大的商业机密是不会有人在意的
    flyPig9527
        6
    flyPig9527  
       321 天前
    npm 也能按照公司内网的 gitlab 项目,可以在公司内网的 gitlab 建个仓库,npm install 下来也行
    tool2d
        7
    tool2d  
       321 天前
    小项目整那么复杂,直接文件夹同步过去。
    Baymaxbowen
        8
    Baymaxbowen  
       321 天前
    微应用包一下 A 做主应用,B 做子应用,这个页面写在 B 项目里面,在 A 应用里面引用 B ,可以使用 qiankun 、MicroApp 、Module Federation 来实现,如果要再简单可以使用 iframe 实现
    laoona
        9
    laoona  
       321 天前
    pnpm 的 workspace 能否实现?
    zsj1029
        10
    zsj1029  
       321 天前
    Lerna 主推
    rush js 微软的也可以
    Monorepo 应该是属于这个需求吧
    web1996
        11
    web1996  
       278 天前 via Android
    直接将这个页面输出一个 js 文件来引用,可不可以。
    heishu
        12
    heishu  
       181 天前
    楼主最后采用哪种方案了??
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1645 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.