Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] mpa构建路径配置 #11928

Open
tanukihee opened this issue Dec 4, 2023 · 5 comments
Open

[Feature Request] mpa构建路径配置 #11928

tanukihee opened this issue Dec 4, 2023 · 5 comments

Comments

@tanukihee
Copy link

Background

在当前版本的 umi,如果开启 mpa 模式, src/page/foo/index.tsx 默认会构建成 dist/foo.htmldist/foo.js 的格式。

Proposal

希望能添加配置接口,可以自定义构建文件的名称与路径。

Additional context

经尝试,可以使用 name 字段控制名称和路径,但结构上比较丑陋(需要写成 name: "foo/index" 的形式),但是没有在文档内说明,我也无法判断这是否是推荐与受认同的写法,希望文档能更详细说明。

@fz6m
Copy link
Member

fz6m commented Dec 4, 2023

目前 umi 4 里 mpa 的使用场景我听说好像比较少,只有部分 h5 页面才会这么用,因为是约定式路由,如果你想构建到某个想要的路径,直接创建那个路径的文件就好了,这在 nextjs 里也是一样的,会有很多文件夹。

@tanukihee
Copy link
Author

tanukihee commented Dec 4, 2023

我们有一些之间长得很像,但是互相之间的关联没有很强的页面(其实就是按专题分类的报表,互相之间没有跳转需求)。如果使用 mpa 的话,在更新的时候可以使用增量更新,而且也比较容易拆分部署在不同的服务器上,所以才希望 mpa 能有这样的功能。但是今天尝试了之后也发现了这样那样的问题,比如 layout 不展示,默认 template 与 spa 不同等情况,最后还是选择用 spa 了。虽然是比较小众的需求,但如果 umi 小组能在后续优化相关功能,完善相关的文档说明的话就好了。

@fz6m
Copy link
Member

fz6m commented Dec 5, 2023

mpa 是一个实验性功能,仅仅为了产出不同页面的 html ,不支持使用 umi 其他的 layout 等功能。

目前 umi 4 是默认按页分包,这意味着你直接访问任何一个页面都是加载最少的仅这个页面的 js 的,所以从消减体积的角度 mpa 并不会减少多少。如果对加载资源体积非常在意,建议使用 nextjs 等支持 ssr 或 RSC 的框架。

@tanukihee
Copy link
Author

好的,谢谢解答。我对加载时的资源体积并不在意,想要尝试 mpa 更看重的是打包资源互相独立这一点。其他功能都可以使用 spa 很好地完成。

@liaobin312716
Copy link

理论上也可以自己写一个 Umi 插件来更新 Entry 配置。api.appData.mpa.entry 中记录了所有页面的 entry 信息,通过修改 entry ,就可以实现自定义文件名和路径。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants