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

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

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

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

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