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

请教一下各位用 monorepo 管理多个项目的公共方法问题

  •  
  •   Gaays · 325 天前 · 788 次点击
    这是一个创建于 325 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在前端这边用 monorepo 管理了多个项目,把要把公有的 ui 组件、api 、方法都抽出来。 假设文件树是这样的: -monorepo file -package -app1 -app2 -globalFuncion

    我有个疑问,假设抽出一个单独的 package 包,比如有个全局方法包含网络请求的,app1 和 app2 都会用到,那我将这个方法包含网络请求都放到 globalFunction 中吗?网络请求直接写完整的后台接口 url 的话,在本地会报跨域问题,应该如何处理本地调试时的 app1 调 globalFunciton 产生的跨域问题呢?

    如果我的理解或表达不对,烦请大家指正,谢谢

    6 条回复    2023-06-14 17:33:31 +08:00
    mygao666
        1
    mygao666  
       325 天前
    设置下代理,解决跨域问题
    molvqingtai
        2
    molvqingtai  
       325 天前
    为什么要写完整 url , 每个 packge 都应该放一个 .env 文件
    Gaays
        3
    Gaays  
    OP
       325 天前
    @molvqingtai 你的意思是每个 package 都要有 dev server ,比如 webpack 或者 vite ?那另一个 package ( app1 )引用的时候好像也不会起 globalFunction 的 dev server 吧?
    @mygao666 设置代理,指的是给 app1 设置 dev server 的代理还是给 globalFunction 设置代理呢? globalFunction 里面只是 js 文件,咋设置代理呀?

    我不是很懂,我的理解是这样的,大佬们能否讲一下如何在 monorepo 中处理带网络请求的全局方法,dev 环境会有跨域问题
    gengliangcais
        4
    gengliangcais  
       322 天前
    各自代理,各自请求,看你项目的情况,当然也可以统一
    chnwillliu
        5
    chnwillliu  
       310 天前 via Android
    Monorepo 中的包分 app 包和 lib 包,app 包作为 runtime 的入口,保证每个 app 能有相同 schema 的 app config 在运行时可用。任何 app 内的代码和 lib 包也只管放心用 app config, 当然前提是在 app initialize config 之后。app config 本身也可以根据 mode 取到不同的 config , 解决本地开发和生产环境的问题。
    chnwillliu
        6
    chnwillliu  
       310 天前 via Android
    某个 lib 要发请求就从 app config 里拿 apiBaseUrl ,哪个 app 要用这个 lib 就要保证有正确的 apiBaseUrl 在自己的 appConfig 中。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   893 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:10 · PVG 05:10 · LAX 14:10 · JFK 17:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.