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

结合UnoCSS使用时会有样式冲突 #1650

Closed
liect opened this issue Sep 13, 2022 · 5 comments
Closed

结合UnoCSS使用时会有样式冲突 #1650

liect opened this issue Sep 13, 2022 · 5 comments
Assignees
Labels
🙏🏻 help wanted Extra attention is needed need more info need more information to resolve issue

Comments

@liect
Copy link
Contributor

liect commented Sep 13, 2022

tdesign-vue-next 版本

0.20.5

重现链接

No response

重现步骤

在结合UnoCSS使用时会有样式冲突,原因是Tdsign的样式会注入到UnoCSS之后
微信截图_20220913092810

微信截图_20220913092025

可否提供控制样式注入位置的方法?

类似Naive UI的这个
微信截图_20220913093136

期望结果

解决样式冲突

实际结果

No response

框架版本

No response

浏览器版本

Chrome(105)

系统版本

Windows11

Node版本

16

补充说明

No response

@github-actions
Copy link
Contributor

👋 @Aicmortal,感谢给 TDesign 提出了 issue。
请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。

@uyarn uyarn self-assigned this Sep 14, 2022
@PengYYYYY PengYYYYY added the 💪🏻 enhancement New feature or request label Sep 15, 2022
@PengYYYYY
Copy link
Collaborator

调整一下引用顺序呢,看起来应该不是组件库的问题

@PengYYYYY PengYYYYY added need more info need more information to resolve issue and removed 💪🏻 enhancement New feature or request labels Sep 19, 2022
@liect
Copy link
Contributor Author

liect commented Sep 19, 2022

调整一下引用顺序呢,看起来应该不是组件库的问题
@PengYYYYY

import "uno.css";

在min.ts中调整到UnoCSS调整到最后确实会在开发环境中解决这个问题,但是生产产物依旧存在

我不确定是不是Vite的这个问题,dev is A -> B -> C, prod is A -> (B + C),感觉应该是😂
vitejs/vite#9949

naive ui 在编译产物中的css依旧会单独出现在head标签中
微信截图_20220919134710
而Tdesign在开发时样式时单独在head中的,生产产物似乎又和页面组件的CSS打包在了一起
微信截图_20220919135432

所以Tdesign可否提供这种机制呢?

@liect
Copy link
Contributor Author

liect commented Sep 19, 2022

@PengYYYYY
我发现我调整import顺序之所以生效的原因也很奇怪

main.ts

import 'tdesign-vue-next/es/style/index.css';
import './styles/base.css';

// Router
import { Router } from '/@/router';

// UnoCSS在这个文件之后就可以在开发环境中生效
import "@/global";

// UnoCSS
import 'uno.css';

global.ts 在这个文件中导入了MessagePlugin ,测试发现,tdesgin在这里会导入所有的样式文件,然后按照顺序unocss的样式在之后导入了,所以才生效了

import { MessagePlugin } from "tdesign-vue-next";

// 挂载message到全局
window.$message = MessagePlugin;

这样显然有些不合适,要是在main中的导入链中没有包含Tdeisgn相关的导入,那么UnoCSS就会永远处在Tdesign之前,无法生效

@PengYYYYY PengYYYYY added the 🙏🏻 help wanted Extra attention is needed label Sep 24, 2022
@github-actions
Copy link
Contributor

任何人都可以处理此问题。
请务必在您的 pull request 中引用此问题。
感谢你的贡献! ✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🙏🏻 help wanted Extra attention is needed need more info need more information to resolve issue
Projects
None yet
Development

No branches or pull requests

3 participants