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

337 天前
 Gaays

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

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

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

803 次点击
所在节点    前端开发
6 条回复
mygao666
337 天前
设置下代理,解决跨域问题
molvqingtai
337 天前
为什么要写完整 url , 每个 packge 都应该放一个 .env 文件
Gaays
337 天前
@molvqingtai 你的意思是每个 package 都要有 dev server ,比如 webpack 或者 vite ?那另一个 package ( app1 )引用的时候好像也不会起 globalFunction 的 dev server 吧?
@mygao666 设置代理,指的是给 app1 设置 dev server 的代理还是给 globalFunction 设置代理呢? globalFunction 里面只是 js 文件,咋设置代理呀?

我不是很懂,我的理解是这样的,大佬们能否讲一下如何在 monorepo 中处理带网络请求的全局方法,dev 环境会有跨域问题
gengliangcais
334 天前
各自代理,各自请求,看你项目的情况,当然也可以统一
chnwillliu
322 天前
Monorepo 中的包分 app 包和 lib 包,app 包作为 runtime 的入口,保证每个 app 能有相同 schema 的 app config 在运行时可用。任何 app 内的代码和 lib 包也只管放心用 app config, 当然前提是在 app initialize config 之后。app config 本身也可以根据 mode 取到不同的 config , 解决本地开发和生产环境的问题。
chnwillliu
322 天前
某个 lib 要发请求就从 app config 里拿 apiBaseUrl ,哪个 app 要用这个 lib 就要保证有正确的 apiBaseUrl 在自己的 appConfig 中。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/944238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX