-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
build后,demo中引用的组件样式丢失 #225
Comments
I think the reason is you set a wrong path in sideEffects "sideEffects": [
"./src/**/style/**"
], |
@mortalYoung 的推测是正确的,原因是 dumi 在构建文档时使用的不是组件库的产物而是组件库的源码,pkg/es 会被 alias 到 pkg/src,这样构建文档就不依赖于构建组件库。 但这样一来 sideEffects 的配置就必须指向 src 而不是 es,所以这个『特性』是否合理,或者有没有更好的方案,可以再讨论看看。 |
改一下 .fatherrc.ts cssModules: { |
@kyo4311 CSS Modules 由于有显式依赖和使用,不会被 tree-shaking 掉;但组件库不建议启用 CSS Modules,会导致使用者很难进行样式复写 |
我也有遇到这个,.fatherrc打包后样式被tree-shaking掉,但是我通过配置"sideEffects": false 改成 "sideEffects": [".less", ".css"],解决了这个问题,不过奇怪的是,这样配置后,文档打包样式还是会丢失,比如像上面说的一样,配置成 "sideEffects": [".less", ".css", "./src//style/"]才能解决问题,我的疑惑是,".less", ".css"不是已经包括后者了吗,为什么前面的配置不起作用呢。。 补充,后面发现,即使我写成 "sideEffects": [],fatherrc 打包样式不会丢失,所以问题应该是 sideEffects:false和 sideEffects:[],有什么区别?我的理解是一样的,但是fatherrc打包出来的产物是不一样的 |
@PeachScript md中引用css为什么要指向构建产物目录,不能直接指向源码目录呢,这里,我使用 |
build之后,引入的less没有被打包。.fatherrc.ts里面加了extractCSS: true, 还是不行,只是多了css文件,但是点到dist的js或者.d.ts里面引用的都是错误的。是我哪里配错了吗?或者说应该怎么配? |
我也遇到同样的问题,打包后有引入样式,但是样式并没有大包进去,请问怎么解决呢? |
感觉有点昏昏的,我写了sideEffects:false,而且js里没有导入css,但是最后出来的doc还是会有样式,虽然这是我想要的,但是不知道为什么
|
可以手动配置 alias |
@PeachScript 想问下这个还是需要自己手动配置吗, |
怎么都是打包样式无效的问题,关键我还遇到了,折磨~ |
This comment was marked as off-topic.
This comment was marked as off-topic.
demo中的样式添加sideEffects依然无法被打包
|
import { defineConfig } from 'dumi'; export default defineConfig({ // alias 无效 |
我的情况是,开发时候添加的自定义组件样式是正常的,但是一旦发布到npm之后,项目install之后,自定义样式会出现丢失,看到大家说要加sideEffect,始终无效,在package.json 中删除sideeffect 这个参数 ,发现可以了,通过一堆github 上的dumi+antd的项目的配置文件,试了半天,发现可以了,如果后续有人实在解决不了,可以参考下面这些配置试试,我不确定是不是sideeffects 的问题,package中没啥特别的,就是dumi官方配置。 fatherrc.ts export default { umirc.ts import { defineConfig } from 'dumi'; 组件内部引用 import './style.less'; tsconfig { |
This comment was marked as off-topic.
This comment was marked as off-topic.
@yingzi4773 目测发错地儿了 |
可以看看子组件的package.json 里面 sideEffects属性值 |
This comment was marked as off-topic.
This comment was marked as off-topic.
使用dumi开发公司用到组件库。 经调查,dumi dev时,demo里组件库名会被alias到pkgSrc下, 故而,解决办法为: |
This comment was marked as off-topic.
This comment was marked as off-topic.
这怎么解决的呢 我发现如果我本身项目没有引入antd的话,我的组件库引入了antd,我的项目引入了组件库的组件,组件就没有样式 |
没有看到具体的介绍啊? |
你试试我这个配置里的extraBabelPlugins,#225 (comment)
…------------------ 原始邮件 ------------------
发件人: ***@***.***>;
发送时间: 2022年10月21日(星期五) 下午4:47
收件人: ***@***.***>;
抄送: ***@***.***>; ***@***.***>;
主题: Re: [umijs/dumi] build后,demo中引用的组件样式丢失 (#225)
@PeachScript 想问下这个还是需要自己手动配置吗, 目前dumi + antd 封装业务组件 定制主题 src/style/theme.less 在 src/index.ts 内引用不能被打包
这怎么解决的呢 我发现如果我本身项目没有引入antd的话,我的组件库引入了antd,我的项目引入了组件库的组件,组件就没有样式
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
我现在遇到的问题主要是,我组件库使用了antd,而项目里面如果没使用antd的话,项目使用组件库的话,组件库里面也没了antd的样式了,试了你的方案还是不行 |
你这个就是样式文件没有打入组件库的包
…------------------ 原始邮件 ------------------
发件人: ***@***.***>;
发送时间: 2022年10月21日(星期五) 下午5:28
收件人: ***@***.***>;
抄送: ***@***.***>; ***@***.***>;
主题: Re: [umijs/dumi] build后,demo中引用的组件样式丢失 (#225)
我现在遇到的问题主要是,我组件库使用了antd,而项目里面如果没使用antd的话,项目使用组件库的话,组件库里面也没了antd的样式了,试了你的方案还是不行
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Versions
Steps to reproduce
提供了可复现的最小仓库 https://gitee.com/aitter/dumi-issues
按readme.md 可很快复现
What is Expected?
build之后,组件样式能正常引入
What is actually happening?
dev 环境,demo 中的组件样式正常
build 之后,demo中引用的组件样式丢失
The text was updated successfully, but these errors were encountered: