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

提供分包样式隔离功能? #15

Open
wcywxq opened this issue May 26, 2022 · 5 comments
Open

提供分包样式隔离功能? #15

wcywxq opened this issue May 26, 2022 · 5 comments

Comments

@wcywxq
Copy link

wcywxq commented May 26, 2022

在小程序中有很多分包场景,那么我们是否可以不需要把所有样式全部打入主包?而是自定义配置来决定打入分包还是主包呢?从而避免因主包体积受限造成包体积超额等问题,当然这种问题一般对于css来讲无关紧要,但是如果可以,样式分场景打包输出是很关键的内容。这个问题其实一直都是比较核心的问题,因为目前在社区还没有发现类似的功能实现,希望可以提供类似的解决方案

@ItsRyanWu
Copy link
Contributor

感谢你的想法和场景分析
我理解大概的原理是如图所示,通过分析 Tailwind/Windi CSS 生成的样式是从哪一个包的 page templates 中被使用的,从而将被这个包里所有的页面/组件使用到的样式分离并打包进该普通分包/独立分包的入口页面的样式文件内?

  graph TD
    A[Tailwind/Windi CSS 产物] -->|分解| B(package A)
    A[Tailwind/Windi CSS 产物] -->|分解| C(package B)
    B -->|注入分解的样式到 pages 数组中第一个页面| D(page A)
    D -->|影响到其余页面的样式| E(page B)
    D -->|影响到其余页面的样式| F(page C)
    D -->|影响到其余组件的样式| G(component D)
    C -->|同理| H(page E)
    H --> I(...)
    H --> J(...)
    H --> K(...)
Loading

@wcywxq
Copy link
Author

wcywxq commented May 27, 2022

您的理解是没有问题的,我们之前也是做了类似的功能,不过是基于产物来实现的,感觉比较有局限性,您这边的插件化方案比较贴合大众需求,所以希望能提供一个这样的功能

@ItsRyanWu
Copy link
Contributor

您的理解是没有问题的,我们之前也是做了类似的功能,不过是基于产物来实现的,感觉比较有局限性,您这边的插件化方案比较贴合大众需求,所以希望能提供一个这样的功能

收到你的需求,对于团队协作来说这的确是一个待解决的刚需问题,我会研究下如何实现。
也请有类似需求的人看到这条 issue 后留下你们的想法。

@bluescurry
Copy link

+1,小程序主包的体积确实是寸土寸金

@zhtyytg
Copy link

zhtyytg commented Aug 5, 2022

确实,尤其是使用uniapp后,主包每多用1kb都要斤斤计较

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

No branches or pull requests

4 participants