现在前端这边用 monorepo 管理了多个项目,把要把公有的 ui 组件、api 、方法都抽出来。 假设文件树是这样的: -monorepo file -package -app1 -app2 -globalFuncion
我有个疑问,假设抽出一个单独的 package 包,比如有个全局方法包含网络请求的,app1 和 app2 都会用到,那我将这个方法包含网络请求都放到 globalFunction 中吗?网络请求直接写完整的后台接口 url 的话,在本地会报跨域问题,应该如何处理本地调试时的 app1 调 globalFunciton 产生的跨域问题呢?
如果我的理解或表达不对,烦请大家指正,谢谢
1
mygao666 2023-05-30 18:36:40 +08:00
设置下代理,解决跨域问题
|
2
molvqingtai 2023-05-30 18:39:01 +08:00
为什么要写完整 url , 每个 packge 都应该放一个 .env 文件
|
3
Gaays OP @molvqingtai 你的意思是每个 package 都要有 dev server ,比如 webpack 或者 vite ?那另一个 package ( app1 )引用的时候好像也不会起 globalFunction 的 dev server 吧?
@mygao666 设置代理,指的是给 app1 设置 dev server 的代理还是给 globalFunction 设置代理呢? globalFunction 里面只是 js 文件,咋设置代理呀? 我不是很懂,我的理解是这样的,大佬们能否讲一下如何在 monorepo 中处理带网络请求的全局方法,dev 环境会有跨域问题 |
4
gengliangcais 2023-06-02 16:30:54 +08:00
各自代理,各自请求,看你项目的情况,当然也可以统一
|
5
chnwillliu 2023-06-14 17:26:45 +08:00 via Android
Monorepo 中的包分 app 包和 lib 包,app 包作为 runtime 的入口,保证每个 app 能有相同 schema 的 app config 在运行时可用。任何 app 内的代码和 lib 包也只管放心用 app config, 当然前提是在 app initialize config 之后。app config 本身也可以根据 mode 取到不同的 config , 解决本地开发和生产环境的问题。
|
6
chnwillliu 2023-06-14 17:33:31 +08:00 via Android
某个 lib 要发请求就从 app config 里拿 apiBaseUrl ,哪个 app 要用这个 lib 就要保证有正确的 apiBaseUrl 在自己的 appConfig 中。
|